mirror of https://github.com/odrling/Aegisub
70 lines
1.9 KiB
C++
70 lines
1.9 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: bevelButton.cpp
|
|
// Purpose: wxBevelButton, a button that looks like a toggle button in wxMac
|
|
// Author: David Conrad
|
|
// Modified by:
|
|
// Created: 2006-06-16
|
|
// RCS-ID: $Id: bevelButton.cpp,v 1.0 2006/06/16 23:29:20 SC Exp $
|
|
// Copyright: (c) David Conrad
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
|
|
#pragma implementation "button.h"
|
|
#endif
|
|
|
|
#include "wx/wxprec.h"
|
|
|
|
#include "bevelButton.h"
|
|
#include "wx/panel.h"
|
|
#include "wx/stockitem.h"
|
|
|
|
IMPLEMENT_DYNAMIC_CLASS(wxBevelButton, wxControl)
|
|
|
|
#include "wx/mac/uma.h"
|
|
#include "bevelButton.h"
|
|
// Button
|
|
|
|
static const int kMacOSXHorizontalBorder = 2 ;
|
|
static const int kMacOSXVerticalBorder = 4 ;
|
|
|
|
bool wxBevelButton::Create(wxWindow *parent, wxWindowID id, const wxString& lbl,
|
|
const wxPoint& pos,
|
|
const wxSize& size, long style,
|
|
const wxValidator& validator,
|
|
const wxString& name)
|
|
{
|
|
wxString label(lbl);
|
|
if (label.empty() && wxIsStockID(id))
|
|
label = wxGetStockLabel(id);
|
|
|
|
m_macIsUserPane = FALSE ;
|
|
|
|
if ( !wxButtonBase::Create(parent, id, pos, size, style, validator, name) )
|
|
return false;
|
|
|
|
m_label = label ;
|
|
|
|
Rect bounds = wxMacGetBoundsForControl( this , pos , size ) ;
|
|
m_peer = new wxMacControl(this) ;
|
|
|
|
verify_noerr ( CreateBevelButtonControl( MAC_WXHWND(parent->MacGetTopLevelWindowRef()) , &bounds , CFSTR("") ,
|
|
kControlBevelButtonNormalBevel , 0 , NULL , 0 , 0 , 0 , m_peer->GetControlRefAddr() ) );
|
|
|
|
MacPostControlCreate(pos,size) ;
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
wxSize wxBevelButton::DoGetBestSize() const
|
|
{
|
|
int wBtn = 70 ;
|
|
int hBtn = 20 ;
|
|
|
|
int lBtn = m_label.Length() * 8 + 12 ;
|
|
if (lBtn > wBtn)
|
|
wBtn = lBtn;
|
|
|
|
return wxSize ( wBtn , hBtn ) ;
|
|
}
|