📄 private.h
字号:
CTabHandle wxMacCreateColorTable( int numColors );*/void wxMacCreateBitmapButton( ControlButtonContentInfo*info , const wxBitmap& bitmap , int forceType = 0 );void wxMacReleaseBitmapButton( ControlButtonContentInfo*info );#define MAC_WXCOLORREF(a) (*((RGBColor*)&(a)))#define MAC_WXHBITMAP(a) (GWorldPtr(a))#define MAC_WXHMETAFILE(a) (PicHandle(a))#define MAC_WXHICON(a) (IconRef(a))#define MAC_WXHCURSOR(a) (CursHandle(a))#define MAC_WXHRGN(a) (RgnHandle(a))#define MAC_WXHWND(a) (WindowPtr(a))#define MAC_WXRECPTR(a) ((Rect*)a)#define MAC_WXPOINTPTR(a) ((Point*)a)#define MAC_WXHMENU(a) ((MenuHandle)a)struct wxOpaqueWindowRef{ wxOpaqueWindowRef( WindowRef ref ) { m_data = ref; } operator WindowRef() { return m_data; }private : WindowRef m_data;};void wxMacRectToNative( const wxRect *wx , Rect *n );void wxMacNativeToRect( const Rect *n , wxRect* wx );void wxMacPointToNative( const wxPoint* wx , Point *n );void wxMacNativeToPoint( const Point *n , wxPoint* wx );wxWindow * wxFindControlFromMacControl(ControlRef inControl );wxTopLevelWindowMac* wxFindWinFromMacWindow( WindowRef inWindow );wxMenu* wxFindMenuFromMacMenu(MenuRef inMenuRef);int wxMacCommandToId( UInt32 macCommandId );UInt32 wxIdToMacCommand( int wxId );wxMenu* wxFindMenuFromMacCommand( const HICommand &macCommandId , wxMenuItem* &item );extern wxWindow* g_MacLastWindow;pascal OSStatus wxMacTopLevelMouseEventHandler( EventHandlerCallRef handler , EventRef event , void *data );Rect wxMacGetBoundsForControl( wxWindow* window , const wxPoint& pos , const wxSize &size , bool adjustForOrigin = true );ControlActionUPP GetwxMacLiveScrollbarActionProc();class wxMacControl : public wxObject{public : wxMacControl( wxWindow* peer , bool isRootControl = false ); wxMacControl( wxWindow* peer , ControlRef control ); wxMacControl( wxWindow* peer , WXWidget control ); wxMacControl() ; virtual ~wxMacControl(); void Init(); virtual void Dispose(); bool Ok() const { return IsOk(); } bool IsOk() const { return GetControlRef() != NULL; } void SetReferenceInNativeControl(); static wxMacControl* GetReferenceFromNativeControl(ControlRef control); virtual ControlRef * GetControlRefAddr() { return &m_controlRef; } virtual ControlRef GetControlRef() const { return m_controlRef; } virtual void SetReference( URefCon data ); /* void operator= (ControlRef c) { m_controlRef = c; } operator ControlRef () { return m_controlRef; } operator ControlRef * () { return &m_controlRef; } */ // accessing data and values virtual OSStatus SetData( ControlPartCode inPartCode , ResType inTag , Size inSize , const void * inData ); virtual OSStatus GetData( ControlPartCode inPartCode , ResType inTag , Size inBufferSize , void * inOutBuffer , Size * outActualSize ) const; virtual OSStatus GetDataSize( ControlPartCode inPartCode , ResType inTag , Size * outActualSize ) const; virtual OSStatus SendEvent( EventRef ref , OptionBits inOptions = 0 ); virtual OSStatus SendHICommand( HICommand &command , OptionBits inOptions = 0 ); virtual OSStatus SendHICommand( UInt32 commandID , OptionBits inOptions = 0 ); virtual SInt32 GetValue() const; virtual SInt32 GetMaximum() const; virtual SInt32 GetMinimum() const; virtual void SetValue( SInt32 v ); virtual void SetMinimum( SInt32 v ); virtual void SetMaximum( SInt32 v ); virtual void SetValueAndRange( SInt32 value , SInt32 minimum , SInt32 maximum ); virtual void SetRange( SInt32 minimum , SInt32 maximum ); virtual OSStatus SetFocus( ControlFocusPart focusPart ); virtual bool HasFocus() const; virtual bool NeedsFocusRect() const; virtual void SetNeedsFocusRect( bool needs ); // templated helpers Size GetDataSize( ControlPartCode inPartCode , ResType inTag ) const { Size sz; verify_noerr( GetDataSize( inPartCode , inTag , &sz ) ); return sz; } template <typename T> OSStatus SetData( ControlPartCode inPartCode , ResType inTag , const T *data ) { return SetData( inPartCode , inTag , sizeof( T ) , data ); } template <typename T> OSStatus SetData( ControlPartCode inPartCode , ResType inTag , const T& data ) { return SetData( inPartCode , inTag , sizeof( T ) , &data ); } template <typename T> OSStatus SetData( ResType inTag , const T *data ) { return SetData( kControlEntireControl , inTag , sizeof( T ) , data ); } template <typename T> OSStatus SetData( ResType inTag , const T& data ) { return SetData( kControlEntireControl , inTag , sizeof( T ) , &data ); } template <typename T> OSStatus GetData( ControlPartCode inPartCode , ResType inTag , T *data ) const { Size dummy; return GetData( inPartCode , inTag , sizeof( T ) , data , &dummy ); } template <typename T> T GetData( ControlPartCode inPartCode , ResType inTag ) const { T value; OSStatus err = GetData<T>( inPartCode , inTag , &value ); wxASSERT_MSG( err == noErr, wxString::Format(wxT("GetData Failed for Part [%i] and Tag [%i]"), inPartCode, (int)inTag) ); return value; } template <typename T> OSStatus GetData( ResType inTag , T *data ) const { Size dummy; return GetData( kControlEntireControl , inTag , sizeof( T ) , data , &dummy ); } template <typename T> T GetData( ResType inTag ) const { return GetData<T>( kControlEntireControl , inTag ); } // Flash the control for the specified amount of time virtual void Flash( ControlPartCode part , UInt32 ticks = 8 ); virtual void VisibilityChanged( bool shown ); virtual void SuperChangedPosition(); virtual void SetFont( const wxFont & font , const wxColour& foreground , long windowStyle ); virtual void SetBackground( const wxBrush &brush ); virtual ControlPartCode HandleKey( SInt16 keyCode, SInt16 charCode, EventModifiers modifiers ); void SetActionProc( ControlActionUPP actionProc ); void SetViewSize( SInt32 viewSize ); SInt32 GetViewSize() const; virtual bool IsVisible() const; virtual void SetVisibility( bool visible , bool redraw ); virtual bool IsEnabled() const; virtual bool IsActive() const; virtual void Enable( bool enable ); // invalidates this control and all children virtual void InvalidateWithChildren(); virtual void SetDrawingEnabled( bool enable );#ifdef __WXMAC_OSX__ virtual bool GetNeedsDisplay() const;#endif // where is in native window relative coordinates virtual void SetNeedsDisplay( RgnHandle where ); // where is in native window relative coordinates virtual void SetNeedsDisplay( Rect* where = NULL ); // if rect = NULL, entire view virtual void ScrollRect( wxRect *rect , int dx , int dy ); // in native parent window relative coordinates virtual void GetRect( Rect *r ); // in native parent window relative coordinates virtual void SetRect( Rect *r ); virtual void GetRectInWindowCoords( Rect *r ); virtual void GetBestRect( Rect *r ); virtual void SetLabel( const wxString &title ); // converts from Toplevel-Content relative to local static void Convert( wxPoint *pt , wxMacControl *convert , wxMacControl *to ); virtual void GetFeatures( UInt32 *features ); virtual OSStatus GetRegion( ControlPartCode partCode , RgnHandle region ); virtual OSStatus SetZOrder( bool above , wxMacControl* other ); bool IsRootControl() { return m_isRootControl; } wxWindow* GetPeer() const { return m_peer; } // to be moved into a tab control class virtual OSStatus SetTabEnabled( SInt16 tabNo , bool enable );protected : ControlRef m_controlRef; wxFont m_font; long m_windowStyle; wxWindow* m_peer; bool m_needsFocusRect; bool m_isRootControl; DECLARE_DYNAMIC_CLASS_NO_COPY(wxMacControl)};// ============================================================================// DataBrowser Wrapper// ============================================================================//// basing on DataBrowserItemIDs//class wxMacDataBrowserControl : public wxMacControl{public : wxMacDataBrowserControl( wxWindow* peer, const wxPoint& pos, const wxSize& size, long style); wxMacDataBrowserControl() {} OSStatus SetCallbacks( const DataBrowserCallbacks *callbacks ); OSStatus GetItemCount( DataBrowserItemID container, Boolean recurse, DataBrowserItemState state, ItemCount *numItems) const; OSStatus GetItems( DataBrowserItemID container, Boolean recurse, DataBrowserItemState state, Handle items) const; OSStatus AddColumn( DataBrowserListViewColumnDesc *columnDesc, DataBrowserTableViewColumnIndex position ); OSStatus RemoveColumn( DataBrowserTableViewColumnIndex position ); OSStatus AutoSizeColumns(); OSStatus SetHasScrollBars( bool horiz, bool vert ); OSStatus SetHiliteStyle( DataBrowserTableViewHiliteStyle hiliteStyle ); OSStatus SetHeaderButtonHeight( UInt16 height ); OSStatus GetHeaderButtonHeight( UInt16 *height ); OSStatus UpdateItems( DataBrowserItemID container, UInt32 numItems, const DataBrowserItemID *items, DataBrowserPropertyID preSortProperty, DataBrowserPropertyID propertyID ) const; OSStatus AddItems( DataBrowserItemID container, UInt32 numItems, const DataBrowserItemID *items, DataBrowserPropertyID preSortProperty ); OSStatus RemoveItems( DataBrowserItemID container, UInt32 numItems, const DataBrowserItemID *items, DataBrowserPropertyID preSortProperty ); OSStatus RevealItem( DataBrowserItemID item, DataBrowserPropertyID propertyID, DataBrowserRevealOptions options ) const; OSStatus SetSelectionFlags( DataBrowserSelectionFlags ); OSStatus GetSelectionAnchor( DataBrowserItemID *first, DataBrowserItemID *last ) const; bool IsItemSelected( DataBrowserItemID item ) const; OSStatus SetSelectedItems( UInt32 numItems, const DataBrowserItemID *items, DataBrowserSetOption operation ); OSStatus GetItemID( DataBrowserTableViewRowIndex row, DataBrowserItemID * item ) const; OSStatus GetItemRow( DataBrowserItemID item, DataBrowserTableViewRowIndex * row ) const; OSStatus SetDefaultRowHeight( UInt16 height ); OSStatus GetDefaultRowHeight( UInt16 * height ) const; OSStatus SetRowHeight( DataBrowserItemID item , UInt16 height); OSStatus GetRowHeight( DataBrowserItemID item , UInt16 *height) const; OSStatus GetColumnWidth( DataBrowserPropertyID column , UInt16 *width ) const; OSStatus SetColumnWidth( DataBrowserPropertyID column , UInt16 width ); OSStatus GetDefaultColumnWidth( UInt16 *width ) const; OSStatus SetDefaultColumnWidth( UInt16 width ); OSStatus GetColumnCount( UInt32* numColumns) const; OSStatus GetColumnIDFromIndex( DataBrowserTableViewColumnIndex position, DataBrowserTableViewColumnID* id ); OSStatus GetColumnPosition( DataBrowserPropertyID column, DataBrowserTableViewColumnIndex *position) const; OSStatus SetColumnPosition( DataBrowserPropertyID column, DataBrowserTableViewColumnIndex position); OSStatus GetScrollPosition( UInt32 *top , UInt32 *left ) const; OSStatus SetScrollPosition( UInt32 top , UInt32 left ); OSStatus GetSortProperty( DataBrowserPropertyID *column ) const; OSStatus SetSortProperty( DataBrowserPropertyID column ); OSStatus GetSortOrder( DataBrowserSortOrder *order ) const; OSStatus SetSortOrder( DataBrowserSortOrder order ); OSStatus GetPropertyFlags( DataBrowserPropertyID property, DataBrowserPropertyFlags *flags ) const; OSStatus SetPropertyFlags( DataBrowserPropertyID property, DataBrowserPropertyFlags flags ); OSStatus GetHeaderDesc( DataBrowserPropertyID property, DataBrowserListViewHeaderDesc *desc ) const; OSStatus SetHeaderDesc( DataBrowserPropertyID property, DataBrowserListViewHeaderDesc *desc ); OSStatus SetDisclosureColumn( DataBrowserPropertyID property , Boolean expandableRows );protected : static pascal void DataBrowserItemNotificationProc( ControlRef browser, DataBrowserItemID itemID, DataBrowserItemNotification message, DataBrowserItemDataRef itemData ); virtual void ItemNotification( DataBrowserItemID itemID, DataBrowserItemNotification message, DataBrowserItemDataRef itemData) = 0; static pascal OSStatus DataBrowserGetSetItemDataProc( ControlRef browser, DataBrowserItemID itemID, DataBrowserPropertyID property, DataBrowserItemDataRef itemData, Boolean changeValue ); virtual OSStatus GetSetItemData( DataBrowserItemID itemID, DataBrowserPropertyID property, DataBrowserItemDataRef itemData, Boolean changeValue ) = 0; static pascal Boolean DataBrowserCompareProc( ControlRef browser, DataBrowserItemID itemOneID, DataBrowserItemID itemTwoID, DataBrowserPropertyID sortProperty); virtual Boolean CompareItems(DataBrowserItemID itemOneID, DataBrowserItemID itemTwoID, DataBrowserPropertyID sortProperty) = 0; DECLARE_ABSTRACT_CLASS(wxMacDataBrowserControl)};// ============================================================================// Higher-level Databrowser// ============================================================================//// basing on data item objects//// forward declclass wxMacDataItemBrowserControl;class wxMacListBoxItem;const DataBrowserPropertyID kTextColumnId = 1024;const DataBrowserPropertyID kNumericOrderColumnId = 1025;// for multi-column controls, we will use this + the column ID to identify the// column. We don't use kTextColumnId there, and ideally the two should merge.const DataBrowserPropertyID kMinColumnId = 1050;// base API for high-level databrowser operationsclass wxMacListControl{public: virtual void MacDelete( unsigned int n ) = 0; virtual void MacInsert( unsigned int n, const wxString& item, int column = -1 ) = 0; virtual void MacInsert( unsigned int n, const wxArrayString& items, int column = -1 ) = 0; // returns index of newly created line virtual int MacAppend( const wxString& item ) = 0; virtual void MacSetString( unsigned int n, const wxString& item ) = 0; virtual void MacClear() = 0; virtual void MacDeselectAll() = 0; virtual void MacSetSelection( unsigned int n, bool select, bool multi ) = 0; virtual int MacGetSelection() const = 0; virtual int MacGetSelections( wxArrayInt& aSelections ) const = 0; virtual bool MacIsSelected( unsigned int n ) const = 0; virtual void MacScrollTo( unsigned int n ) = 0; virtual wxString MacGetString( unsigned int n) const = 0; virtual unsigned int MacGetCount() const = 0; virtual void MacSetClientData( unsigned int n, void * data) = 0; virtual void * MacGetClientData( unsigned int) const = 0; virtual ~wxMacListControl() { }};// base class for databrowser itemsenum DataItemType { DataItem_Text};class wxMacDataItem{public : wxMacDataItem(); virtual ~wxMacDataItem(); virtual bool IsLessThan(wxMacDataItemBrowserControl *owner , const wxMacDataItem*, DataBrowserPropertyID property) const; // returns true if access was successful, otherwise false virtual OSStatus GetSetData(wxMacDataItemBrowserControl *owner , DataBrowserPropertyID property, DataBrowserItemDataRef itemData, bool changeValue ); virtual void Notification(wxMacDataItemBrowserControl *owner , DataBrowserItemNotification message, DataBrowserItemDataRef itemData ) const; void SetLabel( const wxString& str); const wxString& GetLabel() const; void SetOrder( SInt32 order ); SInt32 GetOrder() const; void SetData( void* data); void* GetData() const; void SetColumn( short col ); short GetColumn();protected : wxString m_label; wxMacCFStringHolder m_cfLabel; void * m_data; SInt32 m_order; DataBrowserPropertyID m_colId;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -