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; }