1
Only in D:\projects\CodeBlocks(commit)\src\sdk\wxFlatNotebook: .svn
2
Only in D:\projects\CodeBlocks(commit)\src\sdk\wxFlatNotebook: AUTHORS
3
Only in D:\projects\CodeBlocks(commit)\src\sdk\wxFlatNotebook: Makefile.am
4
diff -u -r D:\projects\CodeBlocks(commit)\src\sdk\wxFlatNotebook/README D:\projects\CodeBlocks(commit)\src\sdk\2FNB/README
5
--- D:\projects\CodeBlocks(commit)\src\sdk\wxFlatNotebook/README Tue Jun 6 13:13:58 2006
6
+++ D:\projects\CodeBlocks(commit)\src\sdk\2FNB/README Sat Oct 7 02:06:40 2006
9
# cd contrib/build/wxFlatNotebook
12
+# make type=[release | debug ]
14
This will create both the library and the wxFlatNotebookTest executable
16
-To build in debug mode:
18
-# cd contrib/build/wxFlatNotebook
23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
26
+ Fixed minor drawing issues
27
+ Fixed bug that when closing the a tab using the mouse middle button, the page was set to active and only then closed.
28
+ Fixed bug that the old selection value in the event when closing a page was incorrect
32
+======================================================
33
+Version 1.5 9/13/2006 7:40PM
34
+======================================================
38
++ New style added - VC8 style, with curved tabs
39
+ The new style has the following features
40
+ - Background of tab area can be painted in gradient
41
+ - Colourful tabs - a random gentle colour is generated for each new tab (very cool :))
43
+ Note: that the new tab DOES NOT support 'X' button on the tab
45
++ Build for DLL debug/release was fixed (on windows)
46
++ Makefile for Linux is now more generic using wx-config tool
47
++ Several drawing issues were fixed
48
++ Tabs now has an extra line that separate them from the page
50
+========================================================
52
+========================================================
55
+ + remove wxStyledNotebook class, the same functionality now exist under wxFlatNotebook
56
+ + All drawing was moved to renderers (wxFlatNotebook.cpp file is now cleaned from drawing)
57
+ + Now using smart_ptr & singleton template classes where ever possible
59
+ - Added smart tabbing style with new and easy way to select tabs (request #1527285)
60
+ Once this style is enabled, pressing Ctrl+[Shift]+T will popup a dialog with all the open tabs, another Ctrl+[Shift]+T will run throw the
61
+ dialog list, until the Ctrl key is released.
64
+ wxFNB_SMART_TABS - which enables the above feature
65
+ wxFNB_DROPDOWN_TABS_LIST - which replaces the '<>' (left, right arrows buttons) with a drop down list (popup menu) with all the open tabs
66
+ this feature is similar to VS8 tabs styles.
68
+- Fixed a bug in SetSelection - in case that the navigation buttons were hidden, and the selection was not visible, it did not ensure that it will be visible
72
Only in D:\projects\CodeBlocks(commit)\src\sdk\wxFlatNotebook: README.patch
73
Only in D:\projects\CodeBlocks(commit)\src\sdk\wxFlatNotebook: cb_wxfn.patch
74
Only in D:\projects\CodeBlocks(commit)\src\sdk\wxFlatNotebook: libwxflatnotebook.a
75
diff -u -r D:\projects\CodeBlocks(commit)\src\sdk\wxFlatNotebook/popup_dlg.cpp D:\projects\CodeBlocks(commit)\src\sdk\2FNB/popup_dlg.cpp
76
--- D:\projects\CodeBlocks(commit)\src\sdk\wxFlatNotebook/popup_dlg.cpp Wed Oct 11 09:43:07 2006
77
+++ D:\projects\CodeBlocks(commit)\src\sdk\2FNB/popup_dlg.cpp Sat Oct 7 17:22:46 2006
79
-#include "popup_dlg.h"
80
+#include <wx/wxFlatNotebook/popup_dlg.h>
81
#include <wx/listctrl.h>
82
-#include "wxFlatNotebook.h"
83
-#include "renderer.h"
84
+#include <wx/wxFlatNotebook/wxFlatNotebook.h>
85
+#include <wx/wxFlatNotebook/renderer.h>
86
#include <wx/listbox.h>
88
#include <wx/mstream.h>
92
sz->Add( m_listBox, 1, wxEXPAND );
97
// Connect events to the list box
98
- m_listBox->Connect(wxID_ANY, wxEVT_KEY_UP, wxKeyEventHandler(wxTabNavigatorWindow::OnKeyUp), NULL, this);
99
- m_listBox->Connect(wxID_ANY, wxEVT_NAVIGATION_KEY, wxNavigationKeyEventHandler(wxTabNavigatorWindow::OnNavigationKey), NULL, this);
100
+ m_listBox->Connect(wxID_ANY, wxEVT_KEY_UP, wxKeyEventHandler(wxTabNavigatorWindow::OnKeyUp), NULL, this);
101
+ m_listBox->Connect(wxID_ANY, wxEVT_NAVIGATION_KEY, wxNavigationKeyEventHandler(wxTabNavigatorWindow::OnNavigationKey), NULL, this);
102
m_listBox->Connect(wxID_ANY, wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, wxCommandEventHandler(wxTabNavigatorWindow::OnItemSelected), NULL, this);
105
// Connect paint event to the panel
106
m_panel->Connect(wxID_ANY, wxEVT_PAINT, wxPaintEventHandler(wxTabNavigatorWindow::OnPanelPaint), NULL, this);
107
m_panel->Connect(wxID_ANY, wxEVT_ERASE_BACKGROUND, wxEraseEventHandler(wxTabNavigatorWindow::OnPanelEraseBg), NULL, this);
109
// Create the bitmap, only once
112
- wxImage::AddHandler( new wxPNGHandler );
113
+ wxImage::AddHandler( new wxPNGHandler );
114
wxInputStream *str = new wxMemoryInputStream(tab_selection_png, tab_selection_png_size);
116
m_bmp = wxBitmap(img);
118
wxFlatNotebook* bk = static_cast<wxFlatNotebook*>(GetParent());
119
long maxItems = bk->GetPageCount();
123
if( event.GetDirection() )
128
int selection = book->GetSelection();
129
int count = book->GetPageCount();
133
m_listBox->Append( book->GetPageText(static_cast<int>(selection)) );
134
m_indexMap[0] = selection;
136
int prevSel = book->GetPreviousSelection();
137
if( prevSel != wxNOT_FOUND )
139
- // Insert the previous selection as second entry
140
+ // Insert the previous selection as second entry
141
m_listBox->Append( book->GetPageText(static_cast<int>(prevSel)) );
142
m_indexMap[1] = prevSel;
145
font.SetWeight( wxBOLD );
146
mem_dc.SetFont( font );
147
mem_dc.GetTextExtent( wxT("Tp"), &w, &fontHeight );
150
txtPt.x = bmpPt.x + m_bmp.GetWidth() + 4;
151
txtPt.y = (rect.height - fontHeight)/2;
152
mem_dc.SetTextForeground( *wxWHITE );
154
void wxTabNavigatorWindow::OnPanelEraseBg(wxEraseEvent &event)
160
diff -u -r D:\projects\CodeBlocks(commit)\src\sdk\wxFlatNotebook/renderer.cpp D:\projects\CodeBlocks(commit)\src\sdk\2FNB/renderer.cpp
161
--- D:\projects\CodeBlocks(commit)\src\sdk\wxFlatNotebook/renderer.cpp Wed Oct 11 09:44:40 2006
162
+++ D:\projects\CodeBlocks(commit)\src\sdk\2FNB/renderer.cpp Sat Oct 7 13:28:20 2006
164
-#include "renderer.h"
165
-#include "wxFlatNotebook.h" // for the styles
166
+#include <wx/wxFlatNotebook/renderer.h>
167
+#include <wx/wxFlatNotebook/wxFlatNotebook.h> // for the styles
169
wxFNBRenderer::wxFNBRenderer()
170
: m_tabXBgBmp(16, 16)
173
if(style & wxFNB_NO_NAV_BUTTONS && style & wxFNB_NO_X_BUTTON && !(style & wxFNB_DROPDOWN_TABS_LIST))
178
if((style & wxFNB_NO_NAV_BUTTONS) && !(style & wxFNB_NO_X_BUTTON) && !(style & wxFNB_DROPDOWN_TABS_LIST))
183
if(!(style & wxFNB_NO_NAV_BUTTONS) && (style & wxFNB_NO_X_BUTTON) && !(style & wxFNB_DROPDOWN_TABS_LIST))
188
if((style & wxFNB_DROPDOWN_TABS_LIST) && !(style & wxFNB_NO_X_BUTTON))
192
// Set the bitmap according to the button status
196
switch(pc->m_nArrowDownButtonStatus)
198
case wxFNB_BTN_HOVER:
200
// Get the text hight
201
int tabHeight = CalcTabHeight(pageContainer);
202
long style = pc->GetParent()->GetWindowStyleFlag();
205
// Calculate the number of rows required for drawing the tabs
206
wxRect rect = pc->GetClientRect();
207
int clientWidth = rect.width;
210
wxFNBRendererPtr wxFNBRendererMgr::GetRenderer(long style)
212
- // since we dont have a style for default tabs, we
213
+ // since we dont have a style for default tabs, we
214
// test for all others - FIXME: add style for default tabs
215
if( !(style & wxFNB_VC71) && !(style & wxFNB_VC8) && !(style & wxFNB_FANCY_TABS) )
216
return m_renderers[-1];
220
//------------------------------------------
223
//------------------------------------------
225
void wxFNBRendererDefault::DrawTab(wxWindow* pageContainer, wxDC &dc, const int &posx, const int &tabIdx, const int &tabWidth, const int &tabHeight, const int btnStatus)
226
@@ -827,12 +827,12 @@
227
GetBitmap(dc, x_rect, m_tabXBgBmp);
230
- DrawTabX(pc, dc, x_rect, tabIdx, btnStatus);
231
+ DrawTabX(pc, dc, x_rect, tabIdx, btnStatus);
235
//------------------------------------------------------------------
236
-// Visual studio 7.1
237
+// Visual studio 7.1
238
//------------------------------------------------------------------
240
void wxFNBRendererVC71::DrawTab(wxWindow* pageContainer, wxDC &dc, const int &posx, const int &tabIdx, const int &tabWidth, const int &tabHeight, const int btnStatus)
242
int padding = static_cast<wxFlatNotebook*>( pc->GetParent() )->GetPadding();
243
bool hasImage = pc->GetPageInfoVector()[tabIdx].GetImageIndex() != -1;
244
int imageYCoord = pc->HasFlag(wxFNB_BOTTOM) ? 6 : 8;
247
hasImage ? textOffset = padding * 2 + 16 : textOffset = padding;
249
if(tabIdx != pc->GetSelection())
253
dc.DrawText(pc->GetPageText(tabIdx), posx + textOffset, imageYCoord);
256
// draw 'x' on tab (if enabled)
257
if(pc->HasFlag(wxFNB_X_ON_TAB) && tabIdx == pc->GetSelection())
260
GetBitmap(dc, x_rect, m_tabXBgBmp);
263
- DrawTabX(pc, dc, x_rect, tabIdx, btnStatus);
264
+ DrawTabX(pc, dc, x_rect, tabIdx, btnStatus);
268
@@ -1003,7 +1003,7 @@
271
dc.DrawText(pc->GetPageText(tabIdx), posx + textOffset, imageYCoord);
274
// draw 'x' on tab (if enabled)
275
if(pc->HasFlag(wxFNB_X_ON_TAB) && tabIdx == pc->GetSelection())
277
@@ -1018,7 +1018,7 @@
278
GetBitmap(dc, x_rect, m_tabXBgBmp);
281
- DrawTabX(pc, dc, x_rect, tabIdx, btnStatus);
282
+ DrawTabX(pc, dc, x_rect, tabIdx, btnStatus);
286
@@ -1029,7 +1029,7 @@
288
wxPageContainer *pc = static_cast<wxPageContainer*>( pageContainer );
292
// Works well on MSW & GTK, however this lines should be skipped on MAC
293
if(pc->GetPageInfoVector().empty() || pc->m_nFrom >= (int)pc->GetPageInfoVector().GetCount())
295
@@ -1063,7 +1063,7 @@
297
dc.SetTextBackground(pc->GetBackgroundColour());
298
dc.SetTextForeground(pc->m_activeTextColor);
301
// If border style is set, set the pen to be border pen
302
if( pc->HasFlag(wxFNB_TABS_BORDER_SIMPLE) )
303
dc.SetPen(borderPen);
304
@@ -1081,7 +1081,7 @@
310
//---------------------------------------
312
//---------------------------------------
313
@@ -1134,7 +1134,7 @@
314
int activeTabWidth(0);
315
int activeTabHeight(0);
317
- for(cur=(int)vTabsInfo.size() - 1; cur>=0; cur--)
318
+ for(cur=(int)vTabsInfo.size() - 1; cur>=0; cur--)
320
/// 'i' points to the index of the currently drawn tab
321
/// in pc->GetPageInfoVector() vector
322
@@ -1159,8 +1159,8 @@
323
// the region, it will be filled by the function
325
pc->GetPageInfoVector()[i].GetRegion().Clear();
327
- // Clean the 'x' buttn on the tab
329
+ // Clean the 'x' buttn on the tab
330
// 'Clean' rectanlge is a rectangle with width or height
331
// with values lower than or equal to 0
332
pc->GetPageInfoVector()[i].GetXRect().SetSize(wxSize(-1, -1));
333
@@ -1204,7 +1204,7 @@
334
pc->GetPageInfoVector()[xx].GetRegion().Clear();
337
- // Draw the left/right/close buttons
338
+ // Draw the left/right/close buttons
340
DrawLeftArrow(pc, dc);
341
DrawRightArrow(pc, dc);
342
@@ -1222,14 +1222,14 @@
343
wxPen borderPen = wxPen( pc->GetBorderColour() );
344
wxPoint tabPoints[8];
346
- // If we draw the first tab or the active tab,
347
+ // If we draw the first tab or the active tab,
348
// we draw a full tab, else we draw a truncated tab
360
@@ -1292,7 +1292,7 @@
362
dc.DrawPolygon(8, tabPoints);
364
- // Delete the bottom line (or the upper one, incase we use wxBOTTOM)
365
+ // Delete the bottom line (or the upper one, incase we use wxBOTTOM)
366
dc.SetPen(wxPen(wxT("WHITE")));
367
dc.DrawLine(tabPoints[0], tabPoints[6]);
369
@@ -1308,14 +1308,14 @@
370
dc.DrawLine(tabPoints[5].x-1, tabPoints[5].y, tabPoints[6].x-1, tabPoints[6].y);
373
- // Text drawing offset from the left border of the
374
+ // Text drawing offset from the left border of the
378
// The width of the images are 16 pixels
379
int vc8ShapeLen = tabHeight - VERTICAL_BORDER_PADDING - 2;
380
if( pc->TabHasImage( tabIdx ) )
381
- textOffset = ((wxFlatNotebook *)pc->m_pParent)->GetPadding() * 2 + 16 + vc8ShapeLen;
382
+ textOffset = ((wxFlatNotebook *)pc->m_pParent)->GetPadding() * 2 + 16 + vc8ShapeLen;
384
textOffset = ((wxFlatNotebook *)pc->m_pParent)->GetPadding() + vc8ShapeLen;
386
@@ -1325,12 +1325,12 @@
387
if( pc->TabHasImage( tabIdx ) )
389
int imageXOffset = textOffset - 16 - ((wxFlatNotebook *)pc->m_pParent)->GetPadding();
390
- dc.DrawBitmap((*pc->GetImageList())[pc->GetPageInfoVector()[tabIdx].GetImageIndex()],
391
+ dc.DrawBitmap((*pc->GetImageList())[pc->GetPageInfoVector()[tabIdx].GetImageIndex()],
392
posx + imageXOffset, imageYCoord, true);
395
wxFont boldFont = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT);
398
// if selected tab, draw text in bold
399
if( tabIdx == pc->GetSelection() )
401
@@ -1349,7 +1349,7 @@
405
- pc->m_colorTo = LightColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE), 0);
406
+ pc->m_colorTo = LightColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE), 0);
407
pc->m_colorFrom = LightColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE), 60);
409
wxColour col2 = pc->HasFlag( wxFNB_BOTTOM ) ? pc->GetGradientColourTo() : pc->GetGradientColourFrom();
410
@@ -1384,9 +1384,9 @@
411
bstep = double((col2.Blue() - col1.Blue())) / double(size), bf = 0;
414
- int y = tabPoints[0].y;
415
+ int y = tabPoints[0].y;
417
- // If we are drawing the selected tab, we need also to draw a line
418
+ // If we are drawing the selected tab, we need also to draw a line
419
// from 0->tabPoints[0].x and tabPoints[6].x -> end, we achieve this
420
// by drawing the rectangle with transparent brush
421
// the line under the selected tab will be deleted by the drwaing loop
422
@@ -1419,11 +1419,11 @@
424
// Draw the border using the 'edge' point
425
dc.SetPen(wxPen(bSelectedTab ? wxSystemSettings::GetColour(wxSYS_COLOUR_BTNSHADOW) : pc->m_colorBorder));
428
dc.DrawPoint(startX, y);
429
dc.DrawPoint(endX, y);
431
- // Progress the color
433
+ // Progress the color
434
rf += rstep; gf += gstep; bf += bstep;
436
pc->HasFlag( wxFNB_BOTTOM ) ? y++ : y--;
437
@@ -1441,7 +1441,7 @@
440
for(int i=0; i<3; i++)
443
if(y >= tabPoints[i].y && y < tabPoints[i+1].y)
446
@@ -1456,7 +1456,7 @@
449
for(int i=0; i<3; i++)
452
if(y <= tabPoints[i].y && y > tabPoints[i+1].y)
455
@@ -1476,14 +1476,14 @@
456
// We know the first 2 points
461
return static_cast<int>( x2 );
463
a = (y2 - y1) / (x2 - x1);
465
double b = y1 - ((y2 - y1) / (x2 - x1)) * x1;
469
return static_cast<int>( x1 );
471
double x = (y - b) / a;
472
@@ -1501,7 +1501,7 @@
475
for(int i=7; i>3; i--)
478
if(y >= tabPoints[i].y && y < tabPoints[i-1].y)
481
@@ -1516,7 +1516,7 @@
484
for(int i=7; i>3; i--)
487
if(y <= tabPoints[i].y && y > tabPoints[i-1].y)
490
@@ -1537,7 +1537,7 @@
491
double a = (y2 - y1) / (x2 - x1);
492
double b = y1 - ((y2 - y1) / (x2 - x1)) * x1;
499
@@ -1552,7 +1552,7 @@
501
wxPageContainer *pc = static_cast<wxPageContainer*>( pageContainer );
502
int tabHeight, clientWidth;
505
wxRect rect = pc->GetClientRect();
506
clientWidth = rect.width;
508
@@ -1563,7 +1563,7 @@
510
// The drawing starts from posx
511
int posx = ((wxFlatNotebook *)pc->m_pParent)->GetPadding();
517
diff -u -r D:\projects\CodeBlocks(commit)\src\sdk\wxFlatNotebook/renderer.h D:\projects\CodeBlocks(commit)\src\sdk\2FNB/renderer.h
518
--- D:\projects\CodeBlocks(commit)\src\sdk\wxFlatNotebook/renderer.h Wed Oct 11 09:44:58 2006
519
+++ D:\projects\CodeBlocks(commit)\src\sdk\2FNB/renderer.h Sat Oct 7 13:34:10 2006
523
#include <wx/string.h>
524
-#include "singleton.h"
525
-#include "smart_ptr.h"
526
+#include <wx/wxFlatNotebook/singleton.h>
527
+#include <wx/wxFlatNotebook/smart_ptr.h>
532
* \param pageContainer parent window on which to draw
533
* \param dc device context to use
534
* \param rect button rectangle
535
- * \param tabIdx tab index
536
+ * \param tabIdx tab index
537
* \param btnStatus button status, can be one of
538
* - wxFNB_BTN_PRESSED
541
virtual void DrawTabX(wxWindow* pageContainer, wxDC& dc, const wxRect& rect, const int& tabIdx, const int btnStatus);
546
* \param pageContainer parent window on which to draw
547
* \param dc device context to use
548
* \param posx tab x coordinate
549
* \param tabIdx tab index
550
- * \param tabWidth tab width
551
- * \param tabHeight tab height
552
+ * \param tabWidth tab width
553
+ * \param tabHeight tab height
554
* \param btnStatus btnStatus the little 'x' button (on top of the active tab) status, can be one of
555
* - wxFNB_BTN_PRESSED
558
virtual void DrawTab(wxWindow* pageContainer, wxDC &dc, const int &posx, const int &tabIdx, const int &tabWidth, const int &tabHeight, const int btnStatus) = 0;
561
- * Calculate tab width , based on its index (for image, x button on tab)
562
+ * Calculate tab width , based on its index (for image, x button on tab)
563
* \param pageContainer pageContainer parent window on which to draw
564
* \param tabIdx tab index
565
* \param tabHeight the tab height (used for tan() function calculations)
568
virtual void GetBitmap(wxDC& dc, const wxRect &rect, wxBitmap &bmp);
572
* Draw a bottom line for the tabs area
575
void DrawTabsLine(wxWindow *pageContainer, wxDC& dc);
580
* Paint rectangle with gradient colouring
581
* \param dc device context
582
- * \param rect rectangle
583
+ * \param rect rectangle
584
* \param startColor gradient colour 1
585
* \param endColor gradient colour 2
586
* \param vertical use vertical gradient or horizontal
588
void FillVC8GradientColor(wxWindow* pageContainer, wxDC &dc, const wxPoint tabPoints[], const bool bSelectedTab, const int tabIdx);
589
int GetEndX(const wxPoint tabPoints[], const int &y, long style);
590
int GetStartX(const wxPoint tabPoints[], const int &y, long style);
595
//-----------------------------------
597
* Return the renderer according to the style flag, the returned pointer should not be
598
* deleted by caller, it is owned by this class
599
* \param style window style flag
600
- * \return wxFNBRenderer
601
+ * \return wxFNBRenderer
603
wxFNBRendererPtr GetRenderer(long style);
605
diff -u -r D:\projects\CodeBlocks(commit)\src\sdk\wxFlatNotebook/wxFlatNotebook.cpp D:\projects\CodeBlocks(commit)\src\sdk\2FNB/wxFlatNotebook.cpp
606
--- D:\projects\CodeBlocks(commit)\src\sdk\wxFlatNotebook/wxFlatNotebook.cpp Wed Oct 11 09:47:14 2006
607
+++ D:\projects\CodeBlocks(commit)\src\sdk\2FNB/wxFlatNotebook.cpp Sat Oct 7 13:51:12 2006
609
///////////////////////////////////////////////////////////////////////////////
610
-// Name: wxFlatNotebook.cpp
611
+// Name: wxFlatNotebook.cpp
612
// Purpose: generic implementation of flat style notebook class.
613
// Author: Eran Ifrah <eranif@bezeqint.net>
614
// Modified by: Priyank Bolia <soft@priyank.in>
616
// Licence: wxWindows license <http://www.wxwidgets.org/licence3.txt>
617
///////////////////////////////////////////////////////////////////////////////
621
- ////////////////////////////////////////////////////////////
622
- // Images used by the control
623
- ////////////////////////////////////////////////////////////
625
- const char *left_arrow_disabled_xpm[] = {
626
- /* width height num_colors chars_per_pixel */
638
- "````````````````",
639
- "````````````````",
640
- "````````````````",
641
- "````````.```````",
642
- "```````..```````",
643
- "``````.`.```````",
644
- "`````.``.```````",
645
- "````.```.```````",
646
- "`````.``.```````",
647
- "``````.`.```````",
648
- "```````..```````",
649
- "````````.```````",
650
- "````````````````",
651
- "````````````````",
652
- "````````````````",
657
- const char *x_button_pressed_xpm[] = {
658
- /* width height num_colors chars_per_pixel */
670
- "````````````````",
671
- "`..............`",
672
- "`.############.`",
673
- "`.############.`",
674
- "`.############.`",
675
- "`.###aa####aa#.`",
676
- "`.####aa##aa##.`",
677
- "`.#####aaaa###.`",
678
- "`.######aa####.`",
679
- "`.#####aaaa###.`",
680
- "`.####aa##aa##.`",
681
- "`.###aa####aa#.`",
682
- "`.############.`",
683
- "`..............`",
684
- "````````````````",
690
- const char *left_arrow_xpm[] = {
691
- /* width height num_colors chars_per_pixel */
703
- "````````````````",
704
- "````````````````",
705
- "````````````````",
706
- "````````.```````",
707
- "```````..```````",
708
- "``````...```````",
709
- "`````....```````",
710
- "````.....```````",
711
- "`````....```````",
712
- "``````...```````",
713
- "```````..```````",
714
- "````````.```````",
715
- "````````````````",
716
- "````````````````",
717
- "````````````````",
722
- const char *x_button_hilite_xpm[] = {
723
- /* width height num_colors chars_per_pixel */
735
- "````````````````",
736
- "`..............`",
737
- "`.############.`",
738
- "`.############.`",
739
- "`.##aa####aa##.`",
740
- "`.###aa##aa###.`",
741
- "`.####aaaa####.`",
742
- "`.#####aa#####.`",
743
- "`.####aaaa####.`",
744
- "`.###aa##aa###.`",
745
- "`.##aa####aa##.`",
746
- "`.############.`",
747
- "`.############.`",
748
- "`..............`",
749
- "````````````````",
754
- const char *x_button_xpm[] = {
755
- /* width height num_colors chars_per_pixel */
767
- "````````````````",
768
- "````````````````",
769
- "````````````````",
770
- "````````````````",
771
- "````..````..````",
772
- "`````..``..`````",
773
- "``````....``````",
774
- "```````..```````",
775
- "``````....``````",
776
- "`````..``..`````",
777
- "````..````..````",
778
- "````````````````",
779
- "````````````````",
780
- "````````````````",
781
- "````````````````",
786
- const char *left_arrow_pressed_xpm[] = {
787
- /* width height num_colors chars_per_pixel */
799
- "````````````````",
800
- "`..............`",
801
- "`.############.`",
802
- "`.############.`",
803
- "`.#######a####.`",
804
- "`.######aa####.`",
805
- "`.#####aaa####.`",
806
- "`.####aaaa####.`",
807
- "`.###aaaaa####.`",
808
- "`.####aaaa####.`",
809
- "`.#####aaa####.`",
810
- "`.######aa####.`",
811
- "`.#######a####.`",
812
- "`..............`",
813
- "````````````````",
818
- const char *left_arrow_hilite_xpm[] = {
819
- /* width height num_colors chars_per_pixel */
831
- "````````````````",
832
- "`..............`",
833
- "`.############.`",
834
- "`.######a#####.`",
835
- "`.#####aa#####.`",
836
- "`.####aaa#####.`",
837
- "`.###aaaa#####.`",
838
- "`.##aaaaa#####.`",
839
- "`.###aaaa#####.`",
840
- "`.####aaa#####.`",
841
- "`.#####aa#####.`",
842
- "`.######a#####.`",
843
- "`.############.`",
844
- "`..............`",
845
- "````````````````",
850
- const char *right_arrow_disabled_xpm[] = {
851
- /* width height num_colors chars_per_pixel */
863
- "````````````````",
864
- "````````````````",
865
- "````````````````",
866
- "```````.````````",
867
- "```````..```````",
868
- "```````.`.``````",
869
- "```````.``.`````",
870
- "```````.```.````",
871
- "```````.``.`````",
872
- "```````.`.``````",
873
- "```````..```````",
874
- "```````.````````",
875
- "````````````````",
876
- "````````````````",
877
- "````````````````",
882
- const char *right_arrow_hilite_xpm[] = {
883
- /* width height num_colors chars_per_pixel */
895
- "````````````````",
896
- "`..............`",
897
- "`.############.`",
898
- "`.####a#######.`",
899
- "`.####aa######.`",
900
- "`.####aaa#####.`",
901
- "`.####aaaa####.`",
902
- "`.####aaaaa###.`",
903
- "`.####aaaa####.`",
904
- "`.####aaa#####.`",
905
- "`.####aa######.`",
906
- "`.####a#######.`",
907
- "`.############.`",
908
- "`..............`",
909
- "````````````````",
914
- const char *right_arrow_pressed_xpm[] = {
915
- /* width height num_colors chars_per_pixel */
927
- "````````````````",
928
- "`..............`",
929
- "`.############.`",
930
- "`.############.`",
931
- "`.#####a######.`",
932
- "`.#####aa#####.`",
933
- "`.#####aaa####.`",
934
- "`.#####aaaa###.`",
935
- "`.#####aaaaa##.`",
936
- "`.#####aaaa###.`",
937
- "`.#####aaa####.`",
938
- "`.#####aa#####.`",
939
- "`.#####a######.`",
940
- "`..............`",
941
- "````````````````",
947
- const char *right_arrow_xpm[] = {
948
- /* width height num_colors chars_per_pixel */
960
- "````````````````",
961
- "````````````````",
962
- "````````````````",
963
- "```````.````````",
964
- "```````..```````",
965
- "```````...``````",
966
- "```````....`````",
967
- "```````.....````",
968
- "```````....`````",
969
- "```````...``````",
970
- "```````..```````",
971
- "```````.````````",
972
- "````````````````",
973
- "````````````````",
974
- "````````````````",
978
- // Arrow down bitmaps
980
- const char *down_arrow_hilite_xpm[] = {
981
- /* width height num_colors chars_per_pixel */
993
- "````````````````",
994
- "``.............`",
995
- "``.###########.`",
996
- "``.###########.`",
997
- "``.###########.`",
998
- "``.#aaaaaaaaa#.`",
999
- "``.##aaaaaaa##.`",
1000
- "``.###aaaaa###.`",
1001
- "``.####aaa####.`",
1002
- "``.#####a#####.`",
1003
- "``.###########.`",
1004
- "``.###########.`",
1005
- "``.###########.`",
1006
- "``.............`",
1007
- "````````````````",
1008
- "````````````````"
1012
- const char *down_arrow_pressed_xpm[] = {
1013
- /* width height num_colors chars_per_pixel */
1026
- "````````````````",
1027
- "``.............`",
1028
- "``.###########.`",
1029
- "``.###########.`",
1030
- "``.###########.`",
1031
- "``.###########.`",
1032
- "``.###########.`",
1033
- "``.#aaaaaaaaa#.`",
1034
- "``.##aaaaaaa##.`",
1035
- "``.###aaaaa###.`",
1036
- "``.####aaa####.`",
1037
- "``.#####a#####.`",
1038
- "``.###########.`",
1039
- "``.............`",
1040
- "````````````````",
1041
- "````````````````"
1046
- const char *down_arrow_xpm[] = {
1047
- /* width height num_colors chars_per_pixel */
1059
- "````````````````",
1060
- "````````````````",
1061
- "````````````````",
1062
- "````````````````",
1063
- "````````````````",
1064
- "````````````````",
1065
- "````.........```",
1066
- "`````.......````",
1067
- "``````.....`````",
1068
- "```````...``````",
1069
- "````````.```````",
1070
- "````````````````",
1071
- "````````````````",
1072
- "````````````````",
1073
- "````````````````",
1074
- "````````````````"
1077
- // Arrow down bitmaps
1079
- const int tab_x_size = 9;
1082
-#include "wxFlatNotebook.h"
1083
-#include "renderer.h"
1084
-#include "popup_dlg.h"
1086
+#include <wx/wxFlatNotebook/wxFlatNotebook.h>
1087
+#include <wx/wxFlatNotebook/renderer.h>
1088
+#include <wx/wxFlatNotebook/popup_dlg.h>
1089
#include <algorithm>
1090
#include <wx/tooltip.h>
1091
#include <wx/tipwin.h>
1095
m_pages->SetSizeHints(wxSize(-1, tabHeight));
1098
// Add the tab container to the sizer
1099
m_mainSizer->Insert(0, m_pages, 0, wxEXPAND);
1100
m_mainSizer->Layout();
1101
@@ -733,23 +272,20 @@
1102
m_pages->DoSetSelection(page);
1105
-void wxFlatNotebook::DeletePage(size_t page, bool notify)
1106
+void wxFlatNotebook::DeletePage(size_t page)
1108
if(page >= m_windows.GetCount())
1113
- // Fire a closing event
1114
- wxFlatNotebookEvent event(wxEVT_COMMAND_FLATNOTEBOOK_PAGE_CLOSING, GetId());
1115
- event.SetSelection((int)page);
1116
- event.SetEventObject(this);
1117
- GetEventHandler()->ProcessEvent(event);
1119
- // The event handler allows it?
1120
- if (!event.IsAllowed())
1123
+ // Fire a closing event
1124
+ wxFlatNotebookEvent event(wxEVT_COMMAND_FLATNOTEBOOK_PAGE_CLOSING, GetId());
1125
+ event.SetSelection((int)page);
1126
+ event.SetEventObject(this);
1127
+ GetEventHandler()->ProcessEvent(event);
1129
+ // The event handler allows it?
1130
+ if (!event.IsAllowed())
1137
m_popupWin = new wxTabNavigatorWindow( this );
1138
m_popupWin->ShowModal();
1139
- m_popupWin->Destroy();
1140
+ m_popupWin->Destroy();
1144
@@ -934,23 +470,20 @@
1148
-bool wxFlatNotebook::RemovePage(size_t page, bool notify)
1149
+bool wxFlatNotebook::RemovePage(size_t page)
1151
if(page >= m_windows.GetCount())
1156
- // Fire a closing event
1157
- wxFlatNotebookEvent event(wxEVT_COMMAND_FLATNOTEBOOK_PAGE_CLOSING, GetId());
1158
- event.SetSelection((int)page);
1159
- event.SetEventObject(this);
1160
- GetEventHandler()->ProcessEvent(event);
1162
- // The event handler allows it?
1163
- if (!event.IsAllowed())
1166
+ // Fire a closing event
1167
+ wxFlatNotebookEvent event(wxEVT_COMMAND_FLATNOTEBOOK_PAGE_CLOSING, GetId());
1168
+ event.SetSelection((int)page);
1169
+ event.SetEventObject(this);
1170
+ GetEventHandler()->ProcessEvent(event);
1172
+ // The event handler allows it?
1173
+ if (!event.IsAllowed())
1178
@@ -1171,7 +704,6 @@
1180
/// Create page info and add it to the vector
1181
wxPageInfo pageInfo(caption, imgindex);
1182
- pageInfo.SetPosition(wxPoint(1,1));
1183
m_pagesInfoVec.Add(pageInfo);
1186
@@ -1183,9 +715,7 @@
1187
m_iPreviousActivePage = m_iActivePage;
1188
m_iActivePage = (int)m_pagesInfoVec.GetCount();
1190
- wxPageInfo pg(text, imgindex);
1191
- pg.SetPosition(wxPoint(1,1));
1192
- m_pagesInfoVec.Insert(pg, index);
1193
+ m_pagesInfoVec.Insert(wxPageInfo(text, imgindex), index);
1197
@@ -1209,16 +739,8 @@
1201
- wxFlatNotebookEvent event(wxEVT_COMMAND_FLATNOTEBOOK_PAGE_CLOSING, GetParent()->GetId());
1202
- event.SetSelection(tabIdx);
1203
- event.SetEventObject(GetParent());
1204
- GetParent()->GetEventHandler()->ProcessEvent(event);
1205
- if (event.IsAllowed())
1207
- // Set the current tab to be active
1208
- SetSelection((size_t)tabIdx);
1209
- DeletePage((size_t)tabIdx, false);
1211
+ DeletePage((size_t)tabIdx);
1216
@@ -1228,37 +750,40 @@
1218
void wxPageContainer::OnRightDown(wxMouseEvent& event)
1220
- wxPageInfo pgInfo;
1222
- int where = HitTest(event.GetPosition(), pgInfo, tabIdx);
1224
+ if(m_pRightClickMenu)
1228
+ wxPageInfo pgInfo;
1230
+ int where = HitTest(event.GetPosition(), pgInfo, tabIdx);
1233
- if(!m_pagesInfoVec[tabIdx].GetEnabled())
1238
+ if(!m_pagesInfoVec[tabIdx].GetEnabled())
1241
- // Set the current tab to be active
1242
- SetSelection((size_t)tabIdx);
1243
+ // Set the current tab to be active
1244
+ SetSelection((size_t)tabIdx);
1246
- // If the owner has defined a context menu for the tabs,
1247
- // popup the right click menu
1248
- if (m_pRightClickMenu)
1249
- PopupMenu(m_pRightClickMenu);
1252
- // send a message to popup a custom menu
1253
- wxFlatNotebookEvent event(wxEVT_COMMAND_FLATNOTEBOOK_CONTEXT_MENU, GetParent()->GetId());
1254
- event.SetSelection((int)tabIdx);
1255
- event.SetOldSelection((int)m_iActivePage);
1256
- event.SetEventObject(GetParent());
1257
- GetParent()->GetEventHandler()->ProcessEvent(event);
1258
+ // If the owner has defined a context menu for the tabs,
1259
+ // popup the right click menu
1260
+ if (m_pRightClickMenu)
1261
+ PopupMenu(m_pRightClickMenu);
1264
+ // send a message to popup a custom menu
1265
+ wxFlatNotebookEvent event(wxEVT_COMMAND_FLATNOTEBOOK_CONTEXT_MENU, GetParent()->GetId());
1266
+ event.SetSelection((int)tabIdx);
1267
+ event.SetOldSelection((int)m_iActivePage);
1268
+ event.SetEventObject(GetParent());
1269
+ GetParent()->GetEventHandler()->ProcessEvent(event);
1282
@@ -1431,7 +956,7 @@
1283
int wxPageContainer::HitTest(const wxPoint& pt, wxPageInfo& pageInfo, int &tabIdx)
1285
wxFNBRendererPtr render = wxFNBRendererMgrST::Get()->GetRenderer( GetParent()->GetWindowStyleFlag() );
1288
wxRect rect = GetClientRect();
1289
int btnLeftPos = render->GetLeftButtonPos(this);
1290
int btnRightPos = render->GetRightButtonPos(this);
1291
@@ -1505,7 +1030,7 @@
1295
- wxRect tabRect = wxRect(pgInfo.GetPosition().x, pgInfo.GetPosition().y,
1296
+ wxRect tabRect = wxRect(pgInfo.GetPosition().x, pgInfo.GetPosition().y,
1297
pgInfo.GetSize().x, pgInfo.GetSize().y);
1298
if(tabRect.Inside(pt))
1300
@@ -1577,10 +1102,10 @@
1304
-void wxPageContainer::DeletePage(size_t page, bool notify)
1305
+void wxPageContainer::DeletePage(size_t page)
1307
wxFlatNotebook* book = (wxFlatNotebook*)GetParent();
1308
- book->DeletePage(page, notify);
1309
+ book->DeletePage(page);
1313
@@ -1598,7 +1123,7 @@
1314
wxFlatNotebook* book = (wxFlatNotebook*)GetParent();
1315
m_pagesInfoVec.RemoveAt(page);
1317
- // Thanks to Yiannis AKA Mandrav
1318
+ // Thanks to Yiaanis AKA Mandrav
1319
if (m_iActivePage >= (int)page)
1322
@@ -1744,7 +1269,7 @@
1323
const bool bRedrawRight = m_nRightButtonStatus != rightButtonStatus;
1324
const bool bRedrawLeft = m_nLeftButtonStatus != leftButtonStatus;
1325
const bool bRedrawTabX = m_nTabXButtonStatus != xTabButtonStatus;
1328
wxFNBRendererPtr render = wxFNBRendererMgrST::Get()->GetRenderer( GetParent()->GetWindowStyleFlag() );
1330
if (bRedrawX || bRedrawRight || bRedrawLeft || bRedrawTabX || bRedrawDropArrow)
1331
@@ -1971,7 +1496,7 @@
1335
- else if (GetParent()->GetWindowStyleFlag() & wxFNB_ALLOW_FOREIGN_DND)
1338
#if defined(__WXMSW__) || defined(__WXGTK__)
1340
@@ -2052,7 +1577,7 @@
1342
if( !HasFlag( wxFNB_VC8 ) )
1346
wxRect rect = GetClientRect();
1347
int clientWidth = rect.width;
1348
int tabHeight = render->CalcTabHeight( this );
1349
diff -u -r D:\projects\CodeBlocks(commit)\src\sdk\wxFlatNotebook/wxFlatNotebook.h D:\projects\CodeBlocks(commit)\src\sdk\2FNB/wxFlatNotebook.h
1350
--- D:\projects\CodeBlocks(commit)\src\sdk\wxFlatNotebook/wxFlatNotebook.h Wed Oct 11 09:43:28 2006
1351
+++ D:\projects\CodeBlocks(commit)\src\sdk\2FNB/wxFlatNotebook.h Sat Oct 7 01:32:48 2006
1353
///////////////////////////////////////////////////////////////////////////////
1354
-// Name: wxFlatNotebook.cpp
1355
+// Name: wxFlatNotebook.cpp
1356
// Purpose: generic implementation of flat style notebook class.
1357
// Author: Eran Ifrah <eranif@bezeqint.net>
1358
// Modified by: Priyank Bolia <soft@priyank.in>
1360
#include <wx/dataobj.h>
1363
-#include "wxFNBDropTarget.h"
1364
+#include <wx/wxFlatNotebook/wxFNBDropTarget.h>
1366
class wxPageContainer;
1369
#define wxFNB_MOUSE_MIDDLE_CLOSES_TABS 0x00000020
1370
#define wxFNB_BOTTOM 0x00000040
1371
#define wxFNB_NODRAG 0x00000080
1372
-#define wxFNB_ALLOW_FOREIGN_DND 0x00000080
1373
#define wxFNB_VC8 0x00000100
1374
#define wxFNB_X_ON_TAB 0x00000200
1375
#define wxFNB_BACKGROUND_GRADIENT 0x00000400
1378
\param page - index of page to be deleted
1380
- void DeletePage(size_t page, bool notify = true);
1381
+ void DeletePage(size_t page);
1383
/// Deletes all notebook pages and destroys all windows associated with pages
1384
bool DeleteAllPages();
1388
* Return the previous selection, useful when implementing smart tabulation
1389
- * \return previous selection, or wxNOT_FOUND
1390
+ * \return previous selection, or wxNOT_FOUND
1392
int GetPreviousSelection() const;
1396
\param page - page index to be removed
1398
- bool RemovePage(size_t page, bool notify = true);
1399
+ bool RemovePage(size_t page);
1401
/// Sets the amount of space around each page's icon and label, in pixels.
1404
virtual void ShowTabTooltip(int tabIdx);
1406
/// A wrapper from calling the DoDeletePage()
1407
- virtual void DeletePage(size_t page, bool notify = true);
1408
+ virtual void DeletePage(size_t page);
1410
/// Remove all pages from the container (it also deletes them)
1411
virtual void DeleteAllPages();
1412
@@ -872,21 +871,460 @@
1413
// Images used by the control
1414
////////////////////////////////////////////////////////////
1416
- extern const char *left_arrow_disabled_xpm[];
1417
- extern const char *x_button_pressed_xpm[];
1418
- extern const char *left_arrow_xpm[];
1419
- extern const char *x_button_hilite_xpm[];
1420
- extern const char *x_button_xpm[];
1421
- extern const char *left_arrow_pressed_xpm[];
1422
- extern const char *left_arrow_hilite_xpm[];
1423
- extern const char *right_arrow_disabled_xpm[];
1424
- extern const char *right_arrow_hilite_xpm[];
1425
- extern const char *right_arrow_pressed_xpm[];
1426
- extern const char *right_arrow_xpm[];
1427
- extern const char *down_arrow_hilite_xpm[];
1428
- extern const char *down_arrow_pressed_xpm[];
1429
- extern const char *down_arrow_xpm[];
1430
- extern const int tab_x_size;
1431
+ static char *left_arrow_disabled_xpm[] = {
1432
+ /* width height num_colors chars_per_pixel */
1444
+ "````````````````",
1445
+ "````````````````",
1446
+ "````````````````",
1447
+ "````````.```````",
1448
+ "```````..```````",
1449
+ "``````.`.```````",
1450
+ "`````.``.```````",
1451
+ "````.```.```````",
1452
+ "`````.``.```````",
1453
+ "``````.`.```````",
1454
+ "```````..```````",
1455
+ "````````.```````",
1456
+ "````````````````",
1457
+ "````````````````",
1458
+ "````````````````",
1459
+ "````````````````"
1463
+ static char *x_button_pressed_xpm[] = {
1464
+ /* width height num_colors chars_per_pixel */
1476
+ "````````````````",
1477
+ "`..............`",
1478
+ "`.############.`",
1479
+ "`.############.`",
1480
+ "`.############.`",
1481
+ "`.###aa####aa#.`",
1482
+ "`.####aa##aa##.`",
1483
+ "`.#####aaaa###.`",
1484
+ "`.######aa####.`",
1485
+ "`.#####aaaa###.`",
1486
+ "`.####aa##aa##.`",
1487
+ "`.###aa####aa#.`",
1488
+ "`.############.`",
1489
+ "`..............`",
1490
+ "````````````````",
1491
+ "````````````````"
1496
+ static char *left_arrow_xpm[] = {
1497
+ /* width height num_colors chars_per_pixel */
1509
+ "````````````````",
1510
+ "````````````````",
1511
+ "````````````````",
1512
+ "````````.```````",
1513
+ "```````..```````",
1514
+ "``````...```````",
1515
+ "`````....```````",
1516
+ "````.....```````",
1517
+ "`````....```````",
1518
+ "``````...```````",
1519
+ "```````..```````",
1520
+ "````````.```````",
1521
+ "````````````````",
1522
+ "````````````````",
1523
+ "````````````````",
1524
+ "````````````````"
1528
+ static char *x_button_hilite_xpm[] = {
1529
+ /* width height num_colors chars_per_pixel */
1541
+ "````````````````",
1542
+ "`..............`",
1543
+ "`.############.`",
1544
+ "`.############.`",
1545
+ "`.##aa####aa##.`",
1546
+ "`.###aa##aa###.`",
1547
+ "`.####aaaa####.`",
1548
+ "`.#####aa#####.`",
1549
+ "`.####aaaa####.`",
1550
+ "`.###aa##aa###.`",
1551
+ "`.##aa####aa##.`",
1552
+ "`.############.`",
1553
+ "`.############.`",
1554
+ "`..............`",
1555
+ "````````````````",
1556
+ "````````````````"
1560
+ static char *x_button_xpm[] = {
1561
+ /* width height num_colors chars_per_pixel */
1573
+ "````````````````",
1574
+ "````````````````",
1575
+ "````````````````",
1576
+ "````````````````",
1577
+ "````..````..````",
1578
+ "`````..``..`````",
1579
+ "``````....``````",
1580
+ "```````..```````",
1581
+ "``````....``````",
1582
+ "`````..``..`````",
1583
+ "````..````..````",
1584
+ "````````````````",
1585
+ "````````````````",
1586
+ "````````````````",
1587
+ "````````````````",
1588
+ "````````````````"
1592
+ static char *left_arrow_pressed_xpm[] = {
1593
+ /* width height num_colors chars_per_pixel */
1605
+ "````````````````",
1606
+ "`..............`",
1607
+ "`.############.`",
1608
+ "`.############.`",
1609
+ "`.#######a####.`",
1610
+ "`.######aa####.`",
1611
+ "`.#####aaa####.`",
1612
+ "`.####aaaa####.`",
1613
+ "`.###aaaaa####.`",
1614
+ "`.####aaaa####.`",
1615
+ "`.#####aaa####.`",
1616
+ "`.######aa####.`",
1617
+ "`.#######a####.`",
1618
+ "`..............`",
1619
+ "````````````````",
1620
+ "````````````````"
1624
+ static char *left_arrow_hilite_xpm[] = {
1625
+ /* width height num_colors chars_per_pixel */
1637
+ "````````````````",
1638
+ "`..............`",
1639
+ "`.############.`",
1640
+ "`.######a#####.`",
1641
+ "`.#####aa#####.`",
1642
+ "`.####aaa#####.`",
1643
+ "`.###aaaa#####.`",
1644
+ "`.##aaaaa#####.`",
1645
+ "`.###aaaa#####.`",
1646
+ "`.####aaa#####.`",
1647
+ "`.#####aa#####.`",
1648
+ "`.######a#####.`",
1649
+ "`.############.`",
1650
+ "`..............`",
1651
+ "````````````````",
1652
+ "````````````````"
1656
+ static char *right_arrow_disabled_xpm[] = {
1657
+ /* width height num_colors chars_per_pixel */
1669
+ "````````````````",
1670
+ "````````````````",
1671
+ "````````````````",
1672
+ "```````.````````",
1673
+ "```````..```````",
1674
+ "```````.`.``````",
1675
+ "```````.``.`````",
1676
+ "```````.```.````",
1677
+ "```````.``.`````",
1678
+ "```````.`.``````",
1679
+ "```````..```````",
1680
+ "```````.````````",
1681
+ "````````````````",
1682
+ "````````````````",
1683
+ "````````````````",
1684
+ "````````````````"
1688
+ static char *right_arrow_hilite_xpm[] = {
1689
+ /* width height num_colors chars_per_pixel */
1701
+ "````````````````",
1702
+ "`..............`",
1703
+ "`.############.`",
1704
+ "`.####a#######.`",
1705
+ "`.####aa######.`",
1706
+ "`.####aaa#####.`",
1707
+ "`.####aaaa####.`",
1708
+ "`.####aaaaa###.`",
1709
+ "`.####aaaa####.`",
1710
+ "`.####aaa#####.`",
1711
+ "`.####aa######.`",
1712
+ "`.####a#######.`",
1713
+ "`.############.`",
1714
+ "`..............`",
1715
+ "````````````````",
1716
+ "````````````````"
1720
+ static char *right_arrow_pressed_xpm[] = {
1721
+ /* width height num_colors chars_per_pixel */
1733
+ "````````````````",
1734
+ "`..............`",
1735
+ "`.############.`",
1736
+ "`.############.`",
1737
+ "`.#####a######.`",
1738
+ "`.#####aa#####.`",
1739
+ "`.#####aaa####.`",
1740
+ "`.#####aaaa###.`",
1741
+ "`.#####aaaaa##.`",
1742
+ "`.#####aaaa###.`",
1743
+ "`.#####aaa####.`",
1744
+ "`.#####aa#####.`",
1745
+ "`.#####a######.`",
1746
+ "`..............`",
1747
+ "````````````````",
1748
+ "````````````````"
1753
+ static char *right_arrow_xpm[] = {
1754
+ /* width height num_colors chars_per_pixel */
1766
+ "````````````````",
1767
+ "````````````````",
1768
+ "````````````````",
1769
+ "```````.````````",
1770
+ "```````..```````",
1771
+ "```````...``````",
1772
+ "```````....`````",
1773
+ "```````.....````",
1774
+ "```````....`````",
1775
+ "```````...``````",
1776
+ "```````..```````",
1777
+ "```````.````````",
1778
+ "````````````````",
1779
+ "````````````````",
1780
+ "````````````````",
1781
+ "````````````````"
1784
+ // Arrow down bitmaps
1786
+ static char *down_arrow_hilite_xpm[] = {
1787
+ /* width height num_colors chars_per_pixel */
1799
+ "````````````````",
1800
+ "``.............`",
1801
+ "``.###########.`",
1802
+ "``.###########.`",
1803
+ "``.###########.`",
1804
+ "``.#aaaaaaaaa#.`",
1805
+ "``.##aaaaaaa##.`",
1806
+ "``.###aaaaa###.`",
1807
+ "``.####aaa####.`",
1808
+ "``.#####a#####.`",
1809
+ "``.###########.`",
1810
+ "``.###########.`",
1811
+ "``.###########.`",
1812
+ "``.............`",
1813
+ "````````````````",
1814
+ "````````````````"
1818
+ static char *down_arrow_pressed_xpm[] = {
1819
+ /* width height num_colors chars_per_pixel */
1831
+ "````````````````",
1832
+ "``.............`",
1833
+ "``.###########.`",
1834
+ "``.###########.`",
1835
+ "``.###########.`",
1836
+ "``.###########.`",
1837
+ "``.###########.`",
1838
+ "``.#aaaaaaaaa#.`",
1839
+ "``.##aaaaaaa##.`",
1840
+ "``.###aaaaa###.`",
1841
+ "``.####aaa####.`",
1842
+ "``.#####a#####.`",
1843
+ "``.###########.`",
1844
+ "``.............`",
1845
+ "````````````````",
1846
+ "````````````````"
1851
+ static char *down_arrow_xpm[] = {
1852
+ /* width height num_colors chars_per_pixel */
1864
+ "````````````````",
1865
+ "````````````````",
1866
+ "````````````````",
1867
+ "````````````````",
1868
+ "````````````````",
1869
+ "````````````````",
1870
+ "````.........```",
1871
+ "`````.......````",
1872
+ "``````.....`````",
1873
+ "```````...``````",
1874
+ "````````.```````",
1875
+ "````````````````",
1876
+ "````````````````",
1877
+ "````````````````",
1878
+ "````````````````",
1879
+ "````````````````"
1882
+ // Arrow down bitmaps
1884
+ const int tab_x_size = 9;
1887
//////////////////////////////////////////////////////////////////////////////////////////////////