2. radio box handles wxSIZE_AUTO_WIDTH/HEIGHT correctly (finally!)
3. attempts to fix broken sash
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2985
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
wxSashEdgePosition edge = m_draggingEdge;
m_draggingEdge = wxSASH_NONE;
wxSashEdgePosition edge = m_draggingEdge;
m_draggingEdge = wxSASH_NONE;
wxRect dragRect;
wxSashDragStatus status = wxSASH_STATUS_OK;
switch (edge)
{
case wxSASH_TOP:
{
wxRect dragRect;
wxSashDragStatus status = wxSASH_STATUS_OK;
switch (edge)
{
case wxSASH_TOP:
{
status = wxSASH_STATUS_OUT_OF_RANGE;
status = wxSASH_STATUS_OUT_OF_RANGE;
- int newHeight = (h - y);
+ int newHeight = (yp + h - y);
newHeight=wxMax(newHeight,m_minimumPaneSizeY);
newHeight=wxMin(newHeight,m_maximumPaneSizeY);
dragRect = wxRect(xp, (yp + h) - newHeight, w, newHeight);
newHeight=wxMax(newHeight,m_minimumPaneSizeY);
newHeight=wxMin(newHeight,m_maximumPaneSizeY);
dragRect = wxRect(xp, (yp + h) - newHeight, w, newHeight);
int menuId = event.GetMenuId();
if ( menuId != -1 )
{
wxMenuBar *menuBar = GetMenuBar();
if (menuBar && menuBar->FindItem(menuId))
{
int menuId = event.GetMenuId();
if ( menuId != -1 )
{
wxMenuBar *menuBar = GetMenuBar();
if (menuBar && menuBar->FindItem(menuId))
{
- // set status text even if the string is empty - this will at
- // least remove the string from the item which was previously
- // selected
- SetStatusText(menuBar->GetHelpString(menuId));
+ help = menuBar->GetHelpString(menuId);
+
+ // set status text even if the string is empty - this will at
+ // least remove the string from the item which was previously
+ // selected
+ SetStatusText(help);
-bool wxFrame::HandleMenuSelect(WXWORD nItem, WXWORD nFlags, WXHMENU hMenu)
+bool wxFrame::HandleMenuSelect(WXWORD nItem, WXWORD flags, WXHMENU hMenu)
- if ( nFlags == 0xFFFF && hMenu == 0 )
+ if ( flags == 0xFFFF && hMenu == 0 )
- // FIXME: what does this do? does it ever happen?
+ // menu was removed from screen
- else if ((nFlags != MF_SEPARATOR) && (nItem != 0) && (nItem != 65535))
+ else if ( !(flags & MF_POPUP) && !(flags & MF_SEPARATOR) )
+ // don't give hints for separators (doesn't make sense) nor for the
+ // items opening popup menus (they don't have them anyhow)
{
int currentX, currentY;
GetPosition(¤tX, ¤tY);
{
int currentX, currentY;
GetPosition(¤tX, ¤tY);
+ int widthOld, heightOld;
+ GetSize(&widthOld, &heightOld);
+
+#if defined(CTL3D) && !CTL3D
// Requires a bigger group box in plain Windows
extraHeight *= 3;
extraHeight /= 2;
#endif
// Requires a bigger group box in plain Windows
extraHeight *= 3;
extraHeight /= 2;
#endif
- MoveWindow(GetHwnd(), x_offset, y_offset,
- totWidth+cx1, totHeight+extraHeight,
- TRUE);
+ // only change our width/height if asked for
+ if ( width == -1 )
+ {
+ if ( sizeFlags & wxSIZE_AUTO_WIDTH )
+ width = totWidth + cx1;
+ else
+ width = widthOld;
+ }
+
+ if ( height == -1 )
+ {
+ if ( sizeFlags & wxSIZE_AUTO_HEIGHT )
+ height = totHeight + extraHeight;
+ else
+ height = heightOld;
+ }
+
+ MoveWindow(GetHwnd(), x_offset, y_offset, width, height, TRUE);
x_offset += cx1;
y_offset += cy1;
}
x_offset += cx1;
y_offset += cy1;
}
+#if defined(CTL3D) && (!CTL3D)
y_offset += (int)(cy1/2); // Fudge factor since buttons overlapped label
// JACS 2/12/93. CTL3D draws group label quite high.
#endif
y_offset += (int)(cy1/2); // Fudge factor since buttons overlapped label
// JACS 2/12/93. CTL3D draws group label quite high.
#endif