📄 private.h
字号:
};enum ListSortOrder { SortOrder_None, SortOrder_Text_Ascending, SortOrder_Text_Descending};typedef wxMacDataItem* wxMacDataItemPtr;const wxMacDataItemPtr wxMacDataBrowserRootContainer = NULL;WX_DEFINE_USER_EXPORTED_ARRAY_PTR(wxMacDataItemPtr, wxArrayMacDataItemPtr, class WXDLLIMPEXP_CORE);class wxMacDataItemBrowserControl : public wxMacDataBrowserControl, public wxMacListControl{public : wxMacDataItemBrowserControl( wxWindow* peer , const wxPoint& pos, const wxSize& size, long style); wxMacDataItemBrowserControl() {} // create a list item (can be a subclass of wxMacListBoxItem) virtual wxMacDataItem* CreateItem(); unsigned int GetItemCount(const wxMacDataItem* container, bool recurse , DataBrowserItemState state) const; void GetItems(const wxMacDataItem* container, bool recurse , DataBrowserItemState state, wxArrayMacDataItemPtr &items ) const; unsigned int GetSelectedItemCount( const wxMacDataItem* container, bool recurse ) const; unsigned int GetLineFromItem(const wxMacDataItem *item) const; wxMacDataItem * GetItemFromLine(unsigned int n) const; void UpdateItem(const wxMacDataItem *container, const wxMacDataItem *item, DataBrowserPropertyID property) const; void UpdateItems(const wxMacDataItem *container, wxArrayMacDataItemPtr &items, DataBrowserPropertyID property) const; void InsertColumn(int colId, DataBrowserPropertyType colType, const wxString& title, SInt16 just = teFlushDefault, int defaultWidth = -1); int GetColumnWidth(int colId); void SetColumnWidth(int colId, int width); void AddItem(wxMacDataItem *container, wxMacDataItem *item); void AddItems(wxMacDataItem *container, wxArrayMacDataItemPtr &items ); void RemoveAllItems(wxMacDataItem *container); void RemoveItem(wxMacDataItem *container, wxMacDataItem* item); void RemoveItems(wxMacDataItem *container, wxArrayMacDataItemPtr &items); void SetSelectedItem( wxMacDataItem* item , DataBrowserSetOption option); void SetSelectedItems( wxArrayMacDataItemPtr &items , DataBrowserSetOption option); void SetSelectedAllItems( DataBrowserSetOption option); Boolean IsItemSelected( const wxMacDataItem* item) const; void RevealItem( wxMacDataItem* item, DataBrowserRevealOptions options); void GetSelectionAnchor( wxMacDataItemPtr* first , wxMacDataItemPtr* last) const; // item aware methods, to be used in subclasses virtual Boolean CompareItems(const wxMacDataItem* itemOneID, const wxMacDataItem* itemTwoID, DataBrowserPropertyID sortProperty); virtual OSStatus GetSetItemData(wxMacDataItem* itemID, DataBrowserPropertyID property, DataBrowserItemDataRef itemData, Boolean changeValue ); virtual void ItemNotification( const wxMacDataItem* itemID, DataBrowserItemNotification message, DataBrowserItemDataRef itemData); // as we are getting the same events for human and API selection we have to suppress // events in the latter case, since this will be used from many subclasses we keep it here bool IsSelectionSuppressed() const { return m_suppressSelection; } bool SuppressSelection( bool suppress ); // wxMacListControl Methods // add and remove virtual void MacDelete( unsigned int n ); virtual void MacInsert( unsigned int n, const wxString& item, int column = -1 ); virtual void MacInsert( unsigned int n, const wxArrayString& items, int column = -1 ); virtual int MacAppend( const wxString& item ); virtual void MacClear(); // selecting virtual void MacDeselectAll(); virtual void MacSetSelection( unsigned int n, bool select, bool multi = false ); virtual int MacGetSelection() const; virtual int MacGetSelections( wxArrayInt& aSelections ) const; virtual bool MacIsSelected( unsigned int n ) const; // display virtual void MacScrollTo( unsigned int n ); // accessing content virtual void MacSetString( unsigned int n, const wxString& item ); virtual void MacSetClientData( unsigned int n, void * data); virtual wxString MacGetString( unsigned int n) const; virtual void * MacGetClientData( unsigned int) const; virtual unsigned int MacGetCount() const; // client data virtual wxClientDataType GetClientDataType() const; virtual void SetClientDataType(wxClientDataType clientDataItemsType); //virtual ListSortOrder GetSortOrder() const; //virtual void SetSortOrder(const ListSortOrder sort);protected: ListSortOrder m_sortOrder; wxClientDataType m_clientDataItemsType; // ID aware base methods, should be 'final' ie not changed in subclasses virtual Boolean CompareItems(DataBrowserItemID itemOneID, DataBrowserItemID itemTwoID, DataBrowserPropertyID sortProperty); virtual OSStatus GetSetItemData(DataBrowserItemID itemID, DataBrowserPropertyID property, DataBrowserItemDataRef itemData, Boolean changeValue ); virtual void ItemNotification( DataBrowserItemID itemID, DataBrowserItemNotification message, DataBrowserItemDataRef itemData);private : bool m_suppressSelection; DECLARE_DYNAMIC_CLASS_NO_COPY(wxMacDataItemBrowserControl)};class wxMacDataItemBrowserSelectionSuppressor{public : wxMacDataItemBrowserSelectionSuppressor(wxMacDataItemBrowserControl *browser); ~wxMacDataItemBrowserSelectionSuppressor();private : bool m_former; wxMacDataItemBrowserControl* m_browser;};// ============================================================================// platform listbox implementation// ============================================================================// exposed for reuse in wxCheckListBoxclass wxMacListBoxItem : public wxMacDataItem{public : wxMacListBoxItem(); virtual ~wxMacListBoxItem(); virtual void Notification(wxMacDataItemBrowserControl *owner , DataBrowserItemNotification message, DataBrowserItemDataRef itemData ) const;};class wxMacDataBrowserListControl : public wxMacDataItemBrowserControl{public: wxMacDataBrowserListControl( wxWindow *peer, const wxPoint& pos, const wxSize& size, long style ); wxMacDataBrowserListControl() {} virtual ~wxMacDataBrowserListControl(); virtual wxMacDataItem* CreateItem(); // pointing back wxWindow * GetPeer() const; DECLARE_DYNAMIC_CLASS_NO_COPY(wxMacDataBrowserListControl)};// ============================================================================// graphics implementation// ============================================================================#if wxMAC_USE_CORE_GRAPHICS && !wxUSE_GRAPHICS_CONTEXTclass WXDLLEXPORT wxMacCGPath : public wxGraphicPath{ DECLARE_NO_COPY_CLASS(wxMacCGPath)public : wxMacCGPath(); ~wxMacCGPath(); // Starts a new subpath at void MoveToPoint( wxCoord x1 , wxCoord y1 ); void AddLineToPoint( wxCoord x1 , wxCoord y1 ); void AddQuadCurveToPoint( wxCoord cx1, wxCoord cy1, wxCoord x1, wxCoord y1 ); void AddRectangle( wxCoord x, wxCoord y, wxCoord w, wxCoord h ); void AddCircle( wxCoord x, wxCoord y , wxCoord r ); // draws a an arc to two tangents connecting (current) to (x1,y1) and (x1,y1) to (x2,y2) virtual void AddArcToPoint( wxCoord x1, wxCoord y1 , wxCoord x2, wxCoord y2, wxCoord r ) ; virtual void AddArc( wxCoord x, wxCoord y, wxCoord r, double startAngle, double endAngle, bool clockwise ) ; // closes the current subpath void CloseSubpath(); CGPathRef GetPath() const;private : CGMutablePathRef m_path;};class WXDLLEXPORT wxMacCGContext : public wxGraphicContext{ DECLARE_NO_COPY_CLASS(wxMacCGContext)public: wxMacCGContext( CGrafPtr port ); wxMacCGContext( CGContextRef cgcontext ); wxMacCGContext(); virtual ~wxMacCGContext(); virtual void Clip( const wxRegion ®ion ); virtual void StrokePath( const wxGraphicPath *p ); virtual void DrawPath( const wxGraphicPath *p , int fillStyle = wxWINDING_RULE ); virtual void FillPath( const wxGraphicPath *p , const wxColor &fillColor , int fillStyle = wxWINDING_RULE ); virtual wxGraphicPath* CreatePath(); virtual void SetPen( const wxPen &pen ) ; virtual void SetBrush( const wxBrush &brush ); CGContextRef GetNativeContext(); void SetNativeContext( CGContextRef cg ); CGPathDrawingMode GetDrawingMode() const { return m_mode; } virtual void Translate( wxCoord dx , wxCoord dy ); virtual void Scale( wxCoord xScale , wxCoord yScale ); virtual void DrawBitmap( const wxBitmap &bmp, wxCoord x, wxCoord y, wxCoord w, wxCoord h ); virtual void DrawIcon( const wxIcon &icon, wxCoord x, wxCoord y, wxCoord w, wxCoord h ); virtual void PushState(); virtual void PopState(); virtual void DrawText( const wxString &str, wxCoord x, wxCoord y, double angle ) ; virtual void GetTextExtent( const wxString &str, wxCoord *width, wxCoord *height, wxCoord *descent, wxCoord *externalLeading ) const ; virtual void GetPartialTextExtents(const wxString& text, wxArrayInt& widths) const ; virtual void SetFont( const wxFont &font ) ; virtual void SetTextColor( const wxColour &col ) ;private: CGContextRef m_cgContext; CGrafPtr m_qdPort; CGPathDrawingMode m_mode; ATSUStyle m_macATSUIStyle ; wxPen m_pen; wxBrush m_brush; wxColor m_textForegroundColor ;};#endif // wxMAC_USE_CORE_GRAPHICS#ifdef __WXMAC_OSX__CGColorSpaceRef wxMacGetGenericRGBColorSpace(void);void wxMacMemoryBufferReleaseProc(void *info, const void *data, size_t size);#endifclass WXDLLEXPORT wxBitmapRefData: public wxGDIRefData{ friend class WXDLLEXPORT wxIcon; friend class WXDLLEXPORT wxCursor;public: wxBitmapRefData(int width , int height , int depth); wxBitmapRefData(); wxBitmapRefData(const wxBitmapRefData &tocopy); virtual ~wxBitmapRefData(); void Free(); bool Ok() const { return IsOk(); } bool IsOk() const { return m_ok; } void SetOk( bool isOk) { m_ok = isOk; } void SetWidth( int width ) { m_width = width; } void SetHeight( int height ) { m_height = height; } void SetDepth( int depth ) { m_depth = depth; } int GetWidth() const { return m_width; } int GetHeight() const { return m_height; } int GetDepth() const { return m_depth; } void *GetRawAccess() const; void *BeginRawAccess(); void EndRawAccess(); bool HasAlpha() const { return m_hasAlpha; } void UseAlpha( bool useAlpha );public:#if wxUSE_PALETTE wxPalette m_bitmapPalette;#endif // wxUSE_PALETTE wxMask * m_bitmapMask; // Optional mask#ifdef __WXMAC_OSX__ CGImageRef CGImageCreate() const;#endif // returns true if the bitmap has a size that // can be natively transferred into a true icon // if no is returned GetIconRef will still produce // an icon but it will be generated via a PICT and // rescaled to 16 x 16 bool HasNativeSize(); // caller should increase ref count if needed longer // than the bitmap exists IconRef GetIconRef(); // returns a Pict from the bitmap content PicHandle GetPictHandle(); GWorldPtr GetHBITMAP(GWorldPtr * mask = NULL ) const; void UpdateAlphaMask() const;private : bool Create(int width , int height , int depth); void Init(); int m_width; int m_height; int m_bytesPerRow; int m_depth; bool m_hasAlpha; wxMemoryBuffer m_memBuf; int m_rawAccessCount; bool m_ok;#ifdef __WXMAC_OSX__ mutable CGImageRef m_cgImageRef;#endif IconRef m_iconRef; PicHandle m_pictHandle; GWorldPtr m_hBitmap; GWorldPtr m_hMaskBitmap; wxMemoryBuffer m_maskMemBuf; int m_maskBytesPerRow;};class WXDLLEXPORT wxIconRefData : public wxGDIRefData{public: wxIconRefData(); wxIconRefData( WXHICON ); virtual ~wxIconRefData() { Free(); } void Init(); virtual void Free(); void SetWidth( int width ) { m_width = width; } void SetHeight( int height ) { m_height = height; } int GetWidth() const { return m_width; } int GetHeight() const { return m_height; } WXHICON GetHICON() const { return (WXHICON) m_iconRef; }private : IconRef m_iconRef; int m_width; int m_height;};// toplevel.cppControlRef wxMacFindControlUnderMouse( wxTopLevelWindowMac* toplevelWindow, const Point& location , WindowRef window , ControlPartCode *outPart );#ifndef __LP64__#ifdef WORDS_BIGENDIAN inline Rect* wxMacGetPictureBounds( PicHandle pict , Rect* rect ) { *rect = (**pict).picFrame; return rect; }#else inline Rect* wxMacGetPictureBounds( PicHandle pict , Rect* rect ) { return QDGetPictureBounds( pict , rect ); }#endif#endif#endif // wxUSE_GUI#define wxMAC_DEFINE_PROC_GETTER( UPP , x ) \UPP Get##x() \{ \ static UPP sHandler = NULL; \ if ( sHandler == NULL ) \ sHandler = New##UPP( x ); \ return sHandler; \}//---------------------------------------------------------------------------// wxMac string conversions//---------------------------------------------------------------------------void wxMacSetupConverters();void wxMacCleanupConverters();void wxMacStringToPascal( const wxString&from , StringPtr to );wxString wxMacMakeStringFromPascal( ConstStringPtr from );// filefn.cppwxString wxMacFSRefToPath( const FSRef *fsRef , CFStringRef additionalPathComponent = NULL );OSStatus wxMacPathToFSRef( const wxString&path , FSRef *fsRef );wxString wxMacHFSUniStrToString( ConstHFSUniStr255Param uniname );#if wxUSE_GUI// deprecating QDvoid wxMacLocalToGlobal( WindowRef window , Point*pt );void wxMacGlobalToLocal( WindowRef window , Point*pt );#endif#endif // _WX_PRIVATE_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -