SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT));
// workaround for flat toolbar on Windows XP classic style: we have to set
- // the style after creating the control, doing it at creation time doesn't
- // work
+ // the style after creating the control; doing it at creation time doesn't work
#if wxUSE_UXTHEME
if ( style & wxTB_FLAT )
{
::SetParent(GetHwndOf(win), GetHwnd());
}
- // only destroy the old toolbar now -- after all the children had been
- // reparented
+ // only destroy the old toolbar now --
+ // after all the children had been reparented
::DestroyWindow(hwndOld);
// it is for the old bitmap control and can't be used with the new one
// is not - otherwise toolbar leaves a hole in the place it used to occupy
wxFrame *frame = wxDynamicCast(GetParent(), wxFrame);
if ( frame && !frame->IsBeingDeleted() )
- {
frame->SendSizeEvent();
- }
if ( m_hBitmap )
- {
::DeleteObject((HBITMAP) m_hBitmap);
- }
delete m_disabledImgList;
}
// incorrect background colour - and not using it still results in the
// correct (flat) toolbar, so don't use it there
if ( s_verComCtl > 400 && s_verComCtl < 600 )
- {
msStyle |= TBSTYLE_FLAT | TBSTYLE_TRANSPARENT;
- }
if ( s_verComCtl >= 470 && style & wxTB_HORZ_LAYOUT )
- {
msStyle |= TBSTYLE_LIST;
- }
}
if ( style & wxTB_NODIVIDER )
}
if ( tool2->IsControl() )
- {
pos += ((wxToolBarTool *)tool2)->GetSeparatorsCount() - 1;
- }
}
// now determine the number of buttons to delete and the area taken by them
void wxToolBar::CreateDisabledImageList()
{
+ if (m_disabledImgList != NULL)
+ {
+ delete m_disabledImgList;
+ m_disabledImgList = NULL;
+ }
+
// as we can't use disabled image list with older versions of comctl32.dll,
// don't even bother creating it
if ( wxTheApp->GetComCtl32Version() >= 470 )
bmpDisabled.GetMask() != NULL,
GetToolsCount()
);
- return;
+ break;
}
}
// we don't have any disabled bitmaps
}
-
- m_disabledImgList = NULL;
}
bool wxToolBar::Realize()
const bool isVertical = HasFlag(wxTB_VERTICAL);
bool doRemap, doRemapBg, doTransparent;
-#ifdef __WXWINCE__
- doRemapBg = false;
- doRemap = false;
- doTransparent = false;
-#else
- if (wxSystemOptions::GetOptionInt(wxT("msw.remap")) == 2)
+ doRemapBg = doRemap = doTransparent = false;
+
+#ifndef __WXWINCE__
+ int remapValue = (-1);
+ if (wxSystemOptions::HasOption(wxT("msw.remap")))
+ remapValue = wxSystemOptions::GetOptionInt(wxT("msw.remap"));
+
+ doTransparent = (remapValue == 2);
+ if (!doTransparent)
{
- doRemapBg = doRemap = false;
- doTransparent = true;
- }
- else
- { doRemap = !wxSystemOptions::HasOption(wxT("msw.remap"))
- || wxSystemOptions::GetOptionInt(wxT("msw.remap")) == 1;
+ doRemap = (remapValue != 0);
doRemapBg = !doRemap;
- doTransparent = false;
}
#endif
wxMemoryDC dcAllButtons;
wxBitmap bitmap(totalBitmapWidth, totalBitmapHeight);
dcAllButtons.SelectObject(bitmap);
-#ifdef __WXWINCE__
- dcAllButtons.SetBackground(wxBrush(wxColour(192,192,192)));
-#else
+
+#ifndef __WXWINCE__
if (doTransparent)
dcAllButtons.SetBackground(*wxTRANSPARENT_BRUSH);
else
- dcAllButtons.SetBackground(*wxLIGHT_GREY_BRUSH);
+ dcAllButtons.SetBackground(wxBrush(GetBackgroundColour()));
+#else
+ dcAllButtons.SetBackground(wxBrush(wxColour(192,192,192)));
#endif
dcAllButtons.Clear();
totalBitmapWidth, totalBitmapHeight);
dcAllButtons.SelectObject(bitmap);
-
-
}
#endif // !__WXWINCE__
#endif // wxUSE_IMAGE
if (doRemap)
- {
MapBitmap(bmpDisabled.GetHBITMAP(), w, h);
- }
m_disabledImgList->Add(bmpDisabled);
}
// Map to system colours
hBitmap = (HBITMAP)MapBitmap((WXHBITMAP) hBitmap,
totalBitmapWidth, totalBitmapHeight);
-
-
}
bool addBitmap = true;
continue;
}
-
TBBUTTON& button = buttons[i];
wxZeroMemory(button);
break;
if ( tool->Toggle(false) )
- {
DoToggleTool(tool, false);
- }
+
prevButton.fsState = TBSTATE_ENABLED;
nodePrev = nodePrev->GetPrevious();
prevIndex--;
}
wxControl *control = tool->GetControl();
-
wxSize size = control->GetSize();
// the position of the leftmost controls corner