virtual void DrawTab(wxDC& dc,
wxWindow* wnd,
+ const wxAuiNotebookPage& pane,
const wxRect& in_rect,
- const wxString& caption,
- const wxBitmap& bitmap,
- bool active,
int close_button_state,
wxRect* out_tab_rect,
wxRect* out_button_rect,
int bitmap_id,
int button_state,
int orientation,
- const wxBitmap& bitmap_override,
wxRect* out_rect) = 0;
-
- virtual int GetIndentSize() = 0;
-
+
virtual wxSize GetTabSize(
wxDC& dc,
wxWindow* wnd,
int close_button_state,
int* x_extent) = 0;
- virtual int ShowWindowList(
+ virtual int ShowDropDown(
wxWindow* wnd,
- const wxArrayString& items,
+ const wxAuiNotebookPageArray& items,
int active_idx) = 0;
+
+ virtual int GetIndentSize() = 0;
- virtual int GetBestTabCtrlSize(wxWindow* wnd,
- wxAuiNotebookPageArray& pages,
- const wxSize& required_bmp_size) = 0;
+ virtual int GetBestTabCtrlSize(
+ wxWindow* wnd,
+ const wxAuiNotebookPageArray& pages,
+ const wxSize& required_bmp_size) = 0;
};
void DrawTab(wxDC& dc,
wxWindow* wnd,
+ const wxAuiNotebookPage& pane,
const wxRect& in_rect,
- const wxString& caption,
- const wxBitmap& bitmap,
- bool active,
int close_button_state,
wxRect* out_tab_rect,
wxRect* out_button_rect,
int bitmap_id,
int button_state,
int orientation,
- const wxBitmap& bitmap_override,
wxRect* out_rect);
int GetIndentSize();
int close_button_state,
int* x_extent);
- int ShowWindowList(
+ int ShowDropDown(
wxWindow* wnd,
- const wxArrayString& items,
+ const wxAuiNotebookPageArray& items,
int active_idx);
int GetBestTabCtrlSize(wxWindow* wnd,
- wxAuiNotebookPageArray& pages,
+ const wxAuiNotebookPageArray& pages,
const wxSize& required_bmp_size);
protected:
void DrawTab(wxDC& dc,
wxWindow* wnd,
+ const wxAuiNotebookPage& pane,
const wxRect& in_rect,
- const wxString& caption,
- const wxBitmap& bitmap,
- bool active,
int close_button_state,
wxRect* out_tab_rect,
wxRect* out_button_rect,
int bitmap_id,
int button_state,
int orientation,
- const wxBitmap& bitmap_override,
wxRect* out_rect);
int GetIndentSize();
int close_button_state,
int* x_extent);
- int ShowWindowList(
+ int ShowDropDown(
wxWindow* wnd,
- const wxArrayString& items,
+ const wxAuiNotebookPageArray& items,
int active_idx);
int GetBestTabCtrlSize(wxWindow* wnd,
- wxAuiNotebookPageArray& pages,
+ const wxAuiNotebookPageArray& pages,
const wxSize& required_bmp_size);
protected:
void wxAuiDefaultTabArt::DrawTab(wxDC& dc,
wxWindow* wnd,
+ const wxAuiNotebookPage& page,
const wxRect& in_rect,
- const wxString& caption_text,
- const wxBitmap& bitmap,
- bool active,
int close_button_state,
wxRect* out_tab_rect,
wxRect* out_button_rect,
wxCoord textx, texty;
// if the caption is empty, measure some temporary text
- wxString caption = caption_text;
- if (caption_text.empty())
+ wxString caption = page.caption;
+ if (caption.empty())
caption = wxT("Xj");
dc.SetFont(m_selected_font);
// figure out the size of the tab
wxSize tab_size = GetTabSize(dc,
wnd,
- caption,
- bitmap,
- active,
+ page.caption,
+ page.bitmap,
+ page.active,
close_button_state,
x_extent);
wxCoord tab_y = in_rect.y + in_rect.height - tab_height;
- caption = caption_text;
+ caption = page.caption;
// select pen, brush and font for the tab to be drawn
- if (active)
+ if (page.active)
{
dc.SetFont(m_selected_font);
textx = selected_textx;
int drawn_tab_height = border_points[0].y - border_points[1].y;
- if (active)
+ if (page.active)
{
// draw active tab
// there are two horizontal grey lines at the bottom of the tab control,
// this gets rid of the top one of those lines in the tab control
- if (active)
+ if (page.active)
{
wxColor start_color = m_base_colour;
dc.SetPen(m_base_colour_pen);
}
- if (bitmap.IsOk())
+ if (page.bitmap.IsOk())
{
int bitmap_offset = tab_x + 8;
// draw bitmap
- dc.DrawBitmap(bitmap,
+ dc.DrawBitmap(page.bitmap,
bitmap_offset,
- drawn_tab_yoff + (drawn_tab_height/2) - (bitmap.GetHeight()/2),
+ drawn_tab_yoff + (drawn_tab_height/2) - (page.bitmap.GetHeight()/2),
true);
- text_offset = bitmap_offset + bitmap.GetWidth();
+ text_offset = bitmap_offset + page.bitmap.GetWidth();
text_offset += 3; // bitmap padding
}
else
int bitmap_id,
int button_state,
int orientation,
- const wxBitmap& bitmap_override,
wxRect* out_rect)
{
wxBitmap bmp;
wxRect rect;
- if (bitmap_override.IsOk())
- {
- bmp = bitmap_override;
- }
- else
+ switch (bitmap_id)
{
- switch (bitmap_id)
- {
- case wxAUI_BUTTON_CLOSE:
- if (button_state & wxAUI_BUTTON_STATE_DISABLED)
- bmp = m_disabled_close_bmp;
- else
- bmp = m_active_close_bmp;
- break;
- case wxAUI_BUTTON_LEFT:
- if (button_state & wxAUI_BUTTON_STATE_DISABLED)
- bmp = m_disabled_left_bmp;
- else
- bmp = m_active_left_bmp;
- break;
- case wxAUI_BUTTON_RIGHT:
- if (button_state & wxAUI_BUTTON_STATE_DISABLED)
- bmp = m_disabled_right_bmp;
- else
- bmp = m_active_right_bmp;
- break;
- case wxAUI_BUTTON_WINDOWLIST:
- if (button_state & wxAUI_BUTTON_STATE_DISABLED)
- bmp = m_disabled_windowlist_bmp;
- else
- bmp = m_active_windowlist_bmp;
- break;
- }
+ case wxAUI_BUTTON_CLOSE:
+ if (button_state & wxAUI_BUTTON_STATE_DISABLED)
+ bmp = m_disabled_close_bmp;
+ else
+ bmp = m_active_close_bmp;
+ break;
+ case wxAUI_BUTTON_LEFT:
+ if (button_state & wxAUI_BUTTON_STATE_DISABLED)
+ bmp = m_disabled_left_bmp;
+ else
+ bmp = m_active_left_bmp;
+ break;
+ case wxAUI_BUTTON_RIGHT:
+ if (button_state & wxAUI_BUTTON_STATE_DISABLED)
+ bmp = m_disabled_right_bmp;
+ else
+ bmp = m_active_right_bmp;
+ break;
+ case wxAUI_BUTTON_WINDOWLIST:
+ if (button_state & wxAUI_BUTTON_STATE_DISABLED)
+ bmp = m_disabled_windowlist_bmp;
+ else
+ bmp = m_active_windowlist_bmp;
+ break;
}
+
if (!bmp.IsOk())
return;
}
-int wxAuiDefaultTabArt::ShowWindowList(wxWindow* wnd,
- const wxArrayString& items,
- int active_idx)
+int wxAuiDefaultTabArt::ShowDropDown(wxWindow* wnd,
+ const wxAuiNotebookPageArray& pages,
+ int active_idx)
{
wxMenu menuPopup;
- size_t i, count = items.GetCount();
+ size_t i, count = pages.GetCount();
for (i = 0; i < count; ++i)
{
- menuPopup.AppendCheckItem(1000+i, items.Item(i));
+ const wxAuiNotebookPage& page = pages.Item(i);
+ menuPopup.AppendCheckItem(1000+i, page.caption);
}
if (active_idx != -1)
}
int wxAuiDefaultTabArt::GetBestTabCtrlSize(wxWindow* wnd,
- wxAuiNotebookPageArray& pages,
+ const wxAuiNotebookPageArray& pages,
const wxSize& required_bmp_size)
{
wxClientDC dc(wnd);
void wxAuiSimpleTabArt::DrawTab(wxDC& dc,
wxWindow* wnd,
+ const wxAuiNotebookPage& page,
const wxRect& in_rect,
- const wxString& caption_text,
- const wxBitmap& bitmap,
- bool active,
int close_button_state,
wxRect* out_tab_rect,
wxRect* out_button_rect,
wxCoord textx, texty;
// if the caption is empty, measure some temporary text
- wxString caption = caption_text;
- if (caption_text.empty())
+ wxString caption = page.caption;
+ if (caption.empty())
caption = wxT("Xj");
dc.SetFont(m_selected_font);
// figure out the size of the tab
wxSize tab_size = GetTabSize(dc,
wnd,
- caption,
- bitmap,
- active,
+ page.caption,
+ page.bitmap,
+ page.active,
close_button_state,
x_extent);
wxCoord tab_x = in_rect.x;
wxCoord tab_y = in_rect.y + in_rect.height - tab_height;
- caption = caption_text;
+ caption = page.caption;
// select pen, brush and font for the tab to be drawn
- if (active)
+ if (page.active)
{
dc.SetPen(m_selected_bkpen);
dc.SetBrush(m_selected_bkbrush);
if (close_button_state != wxAUI_BUTTON_STATE_HIDDEN)
{
wxBitmap bmp;
- if (active)
+ if (page.active)
bmp = m_active_close_bmp;
else
bmp = m_disabled_close_bmp;
int bitmap_id,
int button_state,
int orientation,
- const wxBitmap& bitmap_override,
wxRect* out_rect)
{
wxBitmap bmp;
wxRect rect;
- if (bitmap_override.IsOk())
- {
- bmp = bitmap_override;
- }
- else
+ switch (bitmap_id)
{
- switch (bitmap_id)
- {
- case wxAUI_BUTTON_CLOSE:
- if (button_state & wxAUI_BUTTON_STATE_DISABLED)
- bmp = m_disabled_close_bmp;
- else
- bmp = m_active_close_bmp;
- break;
- case wxAUI_BUTTON_LEFT:
- if (button_state & wxAUI_BUTTON_STATE_DISABLED)
- bmp = m_disabled_left_bmp;
- else
- bmp = m_active_left_bmp;
- break;
- case wxAUI_BUTTON_RIGHT:
- if (button_state & wxAUI_BUTTON_STATE_DISABLED)
- bmp = m_disabled_right_bmp;
- else
- bmp = m_active_right_bmp;
- break;
- case wxAUI_BUTTON_WINDOWLIST:
- if (button_state & wxAUI_BUTTON_STATE_DISABLED)
- bmp = m_disabled_windowlist_bmp;
- else
- bmp = m_active_windowlist_bmp;
- break;
- }
+ case wxAUI_BUTTON_CLOSE:
+ if (button_state & wxAUI_BUTTON_STATE_DISABLED)
+ bmp = m_disabled_close_bmp;
+ else
+ bmp = m_active_close_bmp;
+ break;
+ case wxAUI_BUTTON_LEFT:
+ if (button_state & wxAUI_BUTTON_STATE_DISABLED)
+ bmp = m_disabled_left_bmp;
+ else
+ bmp = m_active_left_bmp;
+ break;
+ case wxAUI_BUTTON_RIGHT:
+ if (button_state & wxAUI_BUTTON_STATE_DISABLED)
+ bmp = m_disabled_right_bmp;
+ else
+ bmp = m_active_right_bmp;
+ break;
+ case wxAUI_BUTTON_WINDOWLIST:
+ if (button_state & wxAUI_BUTTON_STATE_DISABLED)
+ bmp = m_disabled_windowlist_bmp;
+ else
+ bmp = m_active_windowlist_bmp;
+ break;
}
if (!bmp.IsOk())
}
-int wxAuiSimpleTabArt::ShowWindowList(wxWindow* wnd,
- const wxArrayString& items,
- int active_idx)
+int wxAuiSimpleTabArt::ShowDropDown(wxWindow* wnd,
+ const wxAuiNotebookPageArray& pages,
+ int active_idx)
{
wxMenu menuPopup;
- size_t i, count = items.GetCount();
+ size_t i, count = pages.GetCount();
for (i = 0; i < count; ++i)
{
- menuPopup.AppendCheckItem(1000+i, items.Item(i));
+ const wxAuiNotebookPage& page = pages.Item(i);
+ menuPopup.AppendCheckItem(1000+i, page.caption);
}
if (active_idx != -1)
}
int wxAuiSimpleTabArt::GetBestTabCtrlSize(wxWindow* wnd,
- wxAuiNotebookPageArray& WXUNUSED(pages),
+ const wxAuiNotebookPageArray& WXUNUSED(pages),
const wxSize& WXUNUSED(required_bmp_size))
{
wxClientDC dc(wnd);
button.id,
button.cur_state,
wxRIGHT,
- wxNullBitmap,
&button.rect);
offset -= button.rect.GetWidth();
button.id,
button.cur_state,
wxLEFT,
- wxNullBitmap,
&button.rect);
offset += button.rect.GetWidth();
m_art->DrawTab(dc,
wnd,
+ page,
rect,
- page.caption,
- page.bitmap,
- page.active,
tab_button.cur_state,
&page.rect,
&tab_button.rect,
rect.x = active_offset;
m_art->DrawTab(dc,
wnd,
+ page,
active_rect,
- page.caption,
- page.bitmap,
- page.active,
tab_button.cur_state,
&page.rect,
&tab_button.rect,
}
else if (button == wxAUI_BUTTON_WINDOWLIST)
{
- wxArrayString as;
-
- size_t i, page_count = m_pages.GetCount();
- for (i = 0; i < page_count; ++i)
- {
- wxAuiNotebookPage& page = m_pages.Item(i);
- as.Add(page.caption);
- }
-
- int idx = GetArtProvider()->ShowWindowList(this, as, GetActivePage());
+ int idx = GetArtProvider()->ShowDropDown(this, m_pages, GetActivePage());
if (idx != -1)
{