4.2 KiB
4.2 KiB
WINDOWS
- DateTime Picker
- ListView for Tables
- either Property Sheets or Tabs for Tabs
- either Rebar or Toolbar for Toolbars
- Status Bar
- Tooltip (should be a property of each control)
- Trackbar for Sliders
- cannot automatically snap to custom step; need to do it manually
- Tree View
- Up-Down Control for Spinners
- maybe:
- swap ComboBox for ComboBoxEx (probably only if requested enough)
- IP Address control (iff GTK+ and Cocoa have it; maybe not necessary if we allow arbitrary target addresses?)
- ListView for its Icon View?
- something similar to Task Dialog might be useful to have as a convenience template later
- TODO
- commcntl.h has stuff on a font control that isn't documented?
- actually not a control, but localization support: http://msdn.microsoft.com/en-us/library/windows/desktop/bb775454%28v=vs.85%29.aspx
- commcntl.h has stuff on a font control that isn't documented?
- notes to self:
GTK+
- GtkCalendar for date selection (TODO doesn't handle times)
- GtkNotebook for Tabs
- GtkScale for Sliders
- cannot automatically snap to INTEGERS (let alone to custom steps); need to do it manually
- natural size is 0x0 for some reason
- GtkSpinButton for Spinners
- GtkStatusBar
- GtkToolbar
- maybe:
- GtkFontButton would be nice but unless ComboBoxEx provides it Windows doesn't
- same for GtkColorButton
- GtkIconView
- GtkSeparator (I think Windows makes this a mode of Static controls?)
- GtkFontButton would be nice but unless ComboBoxEx provides it Windows doesn't
- notes to self:
- groupbox is GtkFrame
- GtkTreeView can do tree views and Tables
- OpenGL is done outside GTK+: https://projects.gnome.org/gtkglext/
- only an issue if I want to provide OpenGL by default...
- http://stackoverflow.com/questions/3815806/gtk-and-opengl-bindings suggest GtkGLArea is better but that seems to be a Mono thing? also indicates Clutter (with its Cogl) is not an option because it locks you out of using the OpenGL API directly
- er no, the Mono thing is just the homepage... but it doesn't say if this targets GTK+ 2 or GTK+ 3, hm. (also it appears to not have been updated since Precise; in Ubuntu it's libgtkgl)
- and gtkglext doesn't support GTK+ 3 officially anyway
- and cairo doesn't seem to support OpenGL explicitly so it looks like I will need to communicate with glx directly: http://stackoverflow.com/questions/17628241/how-can-i-use-gtk3-and-opengl-together
COCOA
- NSDatePicker for date/time selection
- NSOutlineView for tree views
- NSSlider for Sliders
- NSStatusBar
- NSStepper for Spinners
- TODO does this require me to manually pair it with a single-line text entry field?
- NSTabView for Tabs
- NSTableView for Tables
- NSToolbar
- maybe:
- NSBrowser seems nice...???
- NSCollectionView for Icon View?
- NSColorWell is the color button
- NSOpenGLView for OpenGL; need to see how much OpenGL-specific stuff I need to expose
- NSRuleEditor/NSPredicateEditor look nice too but
- notes to self:
- groupbox is NSBox
- don't look at NSForm; though it arranges in the ideal form layout, it only allows single-line text entry fields as controls
- TODO:
- what does NSPathControl look like?
Slider Capabilities
Capability | Windows | GTK+ | Cocoa |
---|---|---|---|
Data Type | int | float | float |
Can Simulate ints? | yes | TODO | TODO |
Mouse Step Snap | 1, fixed | something; likely 0.1 but not sure | yes (setAllowsTickMarkValuesOnly: ); caveat: must specify an exact number of ticks (see below) |
Keyboard Step Snap | configurable | configurable | TODO (same as mouse?) |
Current Value Display | tooltip during drag | label, always visible | TODO |
Tooltips? | TODO | TODO | TODO |
Ticks | configurable display, configurable interval | TODO | configurable display; configurable COUNT (not interval!) |
Can Catch Mouse Events to Snap? | I think this is how to do it | TODO | TODO |
Preferred Size | given in UI guidelines | natural: 0x0; minimum: TODO | TODO |
Spinner Capabilities
Capability | Windows | GTK+ | Cocoa |
---|---|---|---|
Data Type | int | float | flaot |
Can Simulate ints? | yes | yes | TODO |
Mouse Step Snap | 1, fixed | configurable | configurable |
Keyboard Step Snap | 1, fixed | configurable (uses same value as mouse) | TODO (same as mouse?) |
Can Catch Events To Snap? | TODO | no need | TODO |
Preferred Size | TODO | TODO | TODO |