⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 statbrma.cpp

📁 很牛的GUI源码wxWidgets-2.8.0.zip 可在多种平台下运行.
💻 CPP
字号:
///////////////////////////////////////////////////////////////////////////////// Name:        src/mac/carbon/statbarma.cpp// Purpose:     native implementation of wxStatusBar (optional)// Author:      Stefan Csomor// Modified by:// Created:     1998-01-01// RCS-ID:      $Id: statbrma.cpp,v 1.31 2006/10/21 16:39:41 VZ Exp $// Copyright:   (c) 1998 Stefan Csomor// Licence:     wxWindows licence///////////////////////////////////////////////////////////////////////////////#include "wx/wxprec.h"#if wxUSE_STATUSBAR#include "wx/statusbr.h"#ifndef WX_PRECOMP    #include "wx/dc.h"    #include "wx/dcclient.h"    #include "wx/toplevel.h"#endif#include "wx/mac/private.h"BEGIN_EVENT_TABLE(wxStatusBarMac, wxStatusBarGeneric)    EVT_PAINT(wxStatusBarMac::OnPaint)END_EVENT_TABLE()wxStatusBarMac::wxStatusBarMac(wxWindow *parent,        wxWindowID id,        long style,        const wxString& name)        :        wxStatusBarGeneric(){    SetParent( NULL );    Create( parent, id, style, name );}wxStatusBarMac::wxStatusBarMac()        :        wxStatusBarGeneric(){    SetParent( NULL );}wxStatusBarMac::~wxStatusBarMac(){}bool wxStatusBarMac::Create(wxWindow *parent, wxWindowID id,                            long style ,                            const wxString& name){    if ( !wxStatusBarGeneric::Create( parent, id, style, name ) )        return false;    if ( parent->MacGetTopLevelWindow()->MacGetMetalAppearance() )        MacSetBackgroundBrush( wxNullBrush );    // normal system font is too tall for fitting into the standard height    SetWindowVariant( wxWINDOW_VARIANT_SMALL );    return true;}void wxStatusBarMac::DrawFieldText(wxDC& dc, int i){    int w, h;    GetSize( &w , &h );    wxRect rect;    GetFieldRect( i, rect );    if ( !MacIsReallyHilited() )        dc.SetTextForeground( wxColour( 0x80, 0x80, 0x80 ) );    wxString text(GetStatusText( i ));    long x, y;    dc.GetTextExtent(text, &x, &y);    int leftMargin = 2;    int xpos = rect.x + leftMargin + 1;    int ypos = 1;    if ( MacGetTopLevelWindow()->MacGetMetalAppearance() )        ypos++;    dc.SetClippingRegion(rect.x, 0, rect.width, h);    dc.DrawText(text, xpos, ypos);    dc.DestroyClippingRegion();}void wxStatusBarMac::DrawField(wxDC& dc, int i){    DrawFieldText(dc, i);}void wxStatusBarMac::SetStatusText(const wxString& text, int number){    wxCHECK_RET( (number >= 0) && (number < m_nFields),        wxT("invalid status bar field index") );    if ( m_statusStrings[number] == text )        return ;    m_statusStrings[number] = text;    wxRect rect;    GetFieldRect(number, rect);    int w, h;    GetSize( &w, &h );    rect.y = 0;    rect.height = h ;    Refresh( true, &rect );    Update();}void wxStatusBarMac::OnPaint(wxPaintEvent& WXUNUSED(event)){    wxPaintDC dc(this);    dc.Clear();    int major, minor;    wxGetOsVersion( &major, &minor );    int w, h;    GetSize( &w, &h );    if ( MacIsReallyHilited() )    {        wxPen white( *wxWHITE , 1 , wxSOLID );        if (major >= 10)        {            // Finder statusbar border color: (Project Builder similar is 9B9B9B)            if ( MacGetTopLevelWindow()->MacGetMetalAppearance() )                dc.SetPen(wxPen(wxColour(0x40, 0x40, 0x40), 1, wxSOLID));            else                dc.SetPen(wxPen(wxColour(0xB1, 0xB1, 0xB1), 1, wxSOLID));        }        else        {            wxPen black( *wxBLACK , 1 , wxSOLID );            dc.SetPen(black);        }        dc.DrawLine(0, 0, w, 0);        dc.SetPen(white);        dc.DrawLine(0, 1, w, 1);    }    else    {        if (major >= 10)            // Finder statusbar border color: (Project Builder similar is 9B9B9B)            dc.SetPen(wxPen(wxColour(0xB1, 0xB1, 0xB1), 1, wxSOLID));        else            dc.SetPen(wxPen(wxColour(0x80, 0x80, 0x80), 1, wxSOLID));        dc.DrawLine(0, 0, w, 0);    }    int i;    if ( GetFont().Ok() )        dc.SetFont(GetFont());    dc.SetBackgroundMode(wxTRANSPARENT);    for ( i = 0; i < m_nFields; i ++ )        DrawField(dc, i);}void wxStatusBarMac::MacHiliteChanged(){    Refresh();    Update();}#endif // wxUSE_STATUSBAR

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -