//------------------------------------------------------------------------- // calcs the window's overall size to accomadate the client size //------------------------------------------------------------------------- void GWinControl::ResizeClientArea(int2 ClientSize) { RECT ClientRect; ClientRect.top = 0; ClientRect.left = 0; ClientRect.bottom = ClientSize.y; ClientRect.right = ClientSize.x; if ( !AdjustWindowRectEx( &ClientRect, StyleFlags(), HasMenu(), StyleExFlags() ) ) { GDebug::CheckWin32Error(); return; } // set new window size Resize( int2( ClientRect.right-ClientRect.left, ClientRect.bottom-ClientRect.top ) ); }
void wxFlatButton::DoShowContextMenu() { if(!HasMenu()) { return; } wxPoint pt = GetClientRect().GetBottomLeft(); pt.y += 1; // Notify about menu is about to be shown wxFlatButtonEvent event(wxEVT_CMD_FLATBUTTON_MENU_SHOWING); event.SetMenu(m_contextMenu); event.SetEventObject(this); GetEventHandler()->ProcessEvent(event); PopupMenu(m_contextMenu, pt); m_state = kStateNormal; m_isChecked = false; Refresh(); }
void wxFlatButton::DoActivate() { if(!IsEnabled()) return; wxFlatButtonEvent btnEvent(wxEVT_CMD_FLATBUTTON_CLICK); btnEvent.SetEventObject(this); if(m_kind == kKindChek) { if(HasMenu()) { if(!IsChecked()) { m_state = kStatePressed; m_isChecked = true; Refresh(); CallAfter(&wxFlatButton::DoShowContextMenu); } else { m_state = kStateNormal; m_isChecked = false; Refresh(); } // We don't fire an event return; } else { if(IsChecked()) { // a checked button is about to be unchecked btnEvent.SetInt(0); m_state = kStateNormal; m_isChecked = false; } else { // Checking the button btnEvent.SetInt(1); m_isChecked = true; m_state = kStatePressed; } } } else { m_state = kStateHover; } GetEventHandler()->AddPendingEvent(btnEvent); Refresh(); }