Mercurial > projects > dynamin
comparison dynamin/gui/notebook.d @ 55:c138461bf845
Add focusing and other changes that are related
like descendantAdded/Removed events, Window.activated event, and updating List.
Window.state was also added, even though focusing does not depend on it.
author | Jordan Miner <jminer7@gmail.com> |
---|---|
date | Sat, 08 Aug 2009 15:42:27 -0500 |
parents | ccc108b25a0a |
children | 6580fabb7dce |
comparison
equal
deleted
inserted
replaced
54:3738a2d0bac3 | 55:c138461bf845 |
---|---|
66 * | 66 * |
67 * $(IMAGE ../web/example_notebook.png) | 67 * $(IMAGE ../web/example_notebook.png) |
68 */ | 68 */ |
69 class Notebook : Container { | 69 class Notebook : Container { |
70 protected: | 70 protected: |
71 List!(TabPage) _tabPages; | 71 List!(TabPage, true) _tabPages; |
72 int _selectedIndex = -1; | 72 int _selectedIndex = -1; |
73 bool _multipleLines = true; | 73 bool _multipleLines = true; |
74 Control _content; | 74 Control _content; |
75 package int _tabAreaSize; | 75 package int _tabAreaSize; |
76 override void whenMouseDown(MouseEventArgs e) { | 76 override void whenMouseDown(MouseEventArgs e) { |
89 | 89 |
90 Theme.current.Tab_paint(page, this, e.graphics); | 90 Theme.current.Tab_paint(page, this, e.graphics); |
91 } | 91 } |
92 Theme.current.Tab_paint(selectedTabPage, this, e.graphics); | 92 Theme.current.Tab_paint(selectedTabPage, this, e.graphics); |
93 } | 93 } |
94 void whenTabPagesChanged() { | 94 void whenTabPagesChanged(TabPage page, int) { |
95 if(_tabPages.count == 0) | 95 if(_tabPages.count == 0) |
96 selectedIndex = -1; | 96 selectedIndex = -1; |
97 else if(selectedIndex == -1) | 97 else if(selectedIndex == -1) |
98 selectedIndex = 0; | 98 selectedIndex = 0; |
99 layout(); | 99 layout(); |
114 Event!(whenSelectionChanged) selectionChanged; | 114 Event!(whenSelectionChanged) selectionChanged; |
115 | 115 |
116 this() { | 116 this() { |
117 selectionChanged.mainHandler = &whenSelectionChanged; | 117 selectionChanged.mainHandler = &whenSelectionChanged; |
118 | 118 |
119 _tabPages = new List!(TabPage)(&whenTabPagesChanged); | 119 _tabPages = new List!(TabPage, true)(&whenTabPagesChanged, &whenTabPagesChanged); |
120 _focusable = true; | 120 _focusable = true; |
121 } | 121 } |
122 override void layout() { | 122 override void layout() { |
123 _tabAreaSize = 20; | 123 _tabAreaSize = 20; |
124 int x = 2; | 124 int x = 2; |
141 * advancedPage.text = "Advanced"; | 141 * advancedPage.text = "Advanced"; |
142 * advancedPage.content = advancedPanel; // a previously created Panel | 142 * advancedPage.content = advancedPanel; // a previously created Panel |
143 * tabbedView.TabPages.Add(advancedPage); | 143 * tabbedView.TabPages.Add(advancedPage); |
144 * ----- | 144 * ----- |
145 */ | 145 */ |
146 List!(TabPage) tabPages() { return _tabPages; } | 146 List!(TabPage, true) tabPages() { return _tabPages; } |
147 /** | 147 /** |
148 * Gets or sets the selected tab using its index. An index of -1 means | 148 * Gets or sets the selected tab using its index. An index of -1 means |
149 * there is no selected tab. | 149 * there is no selected tab. |
150 */ | 150 */ |
151 int selectedIndex() { return _selectedIndex; } | 151 int selectedIndex() { return _selectedIndex; } |