// Created: 01/02/97
// RCS-ID: $Id$
// Copyright: (c) Julian Smart and Markus Holzem
-// Licence: wxWindows licence
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#ifndef WX_PRECOMP
#include "wx/defs.h"
+#include "wx/utils.h"
#endif
-#if USE_GAUGE
+#if wxUSE_GAUGE
#include "wx/msw/gaugemsw.h"
#include "wx/msw/private.h"
IMPLEMENT_DYNAMIC_CLASS(wxGaugeMSW, wxControl)
#endif
-bool wxGaugeMSW::Create(wxWindow *parent, const wxWindowID id,
- const int range,
+bool wxGaugeMSW::Create(wxWindow *parent, wxWindowID id,
+ int range,
const wxPoint& pos,
const wxSize& size,
- const long style,
+ long style,
const wxValidator& validator,
const wxString& name)
{
if ( !wxGaugeMSWInitialised )
{
- if (!gaugeInit((HWND) wxGetInstance()))
- wxFatalError("Cannot initalize Gauge library");
- wxGaugeMSWInitialised = TRUE;
+ if (!gaugeInit((HINSTANCE) wxGetInstance()))
+ wxFatalError("Cannot initalize Gauge library");
+ wxGaugeMSWInitialised = TRUE;
}
SetName(name);
if (parent) parent->AddChild(this);
m_rangeMax = range;
+ m_gaugePos = 0;
- SetBackgroundColour(parent->GetDefaultBackgroundColour()) ;
- SetForegroundColour(parent->GetDefaultForegroundColour()) ;
+ SetBackgroundColour(parent->GetBackgroundColour()) ;
+ SetForegroundColour(parent->GetForegroundColour()) ;
m_windowStyle = style;
if ( id == -1 )
- m_windowId = (int)NewControlId();
+ m_windowId = (int)NewControlId();
else
- m_windowId = id;
+ m_windowId = id;
int x = pos.x;
int y = pos.y;
msFlags |= ZYZGS_3D;
HWND wx_button =
- CreateWindowEx(MakeExtendedStyle(m_windowStyle), "zYzGauge", NULL, msFlags,
+ CreateWindowEx(MakeExtendedStyle(m_windowStyle), _T("zYzGauge"), NULL, msFlags,
0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)m_windowId,
wxGetInstance(), NULL);
SendMessage((HWND) GetHWND(), ZYZG_SETFGCOLOR, 0, RGB(GetForegroundColour().Red(), GetForegroundColour().Green(), GetForegroundColour().Blue()));
SendMessage((HWND) GetHWND(), ZYZG_SETBKCOLOR, 0, RGB(GetBackgroundColour().Red(), GetBackgroundColour().Green(), GetBackgroundColour().Blue()));
- SetFont(* parent->GetFont());
+ SetFont(parent->GetFont());
if (width == -1)
width = 50;
return TRUE;
}
-void wxGaugeMSW::SetSize(const int x, const int y, const int width, const int height, const int sizeFlags)
+void wxGaugeMSW::DoSetSize(int x, int y, int width, int height, int sizeFlags)
{
int currentX, currentY;
GetPosition(¤tX, ¤tY);
if (y == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE))
y1 = currentY;
+ AdjustForParentClientOrigin(x1, y1, sizeFlags);
+
// If we're prepared to use the existing size, then...
if (width == -1 && height == -1 && ((sizeFlags & wxSIZE_AUTO) != wxSIZE_AUTO))
{
h1 = DEFAULT_ITEM_HEIGHT;
MoveWindow((HWND) GetHWND(), x1, y1, w1, h1, TRUE);
-
-#if WXWIN_COMPATIBILITY
- GetEventHandler()->OldOnSize(width, height);
-#else
- wxSizeEvent event(wxSize(width, height), m_windowId);
- event.eventObject = this;
- GetEventHandler()->ProcessEvent(event);
-#endif
}
-void wxGaugeMSW::SetShadowWidth(const int w)
+void wxGaugeMSW::SetShadowWidth(int w)
{
SendMessage((HWND) GetHWND(), ZYZG_SETWIDTH3D, w, 0);
}
-void wxGaugeMSW::SetBezelFace(const int w)
+void wxGaugeMSW::SetBezelFace(int w)
{
SendMessage((HWND) GetHWND(), ZYZG_SETBEZELFACE, w, 0);
}
-void wxGaugeMSW::SetRange(const int r)
+void wxGaugeMSW::SetRange(int r)
{
m_rangeMax = r;
SendMessage((HWND) GetHWND(), ZYZG_SETRANGE, r, 0);
}
-void wxGaugeMSW::SetValue(const int pos)
+void wxGaugeMSW::SetValue(int pos)
{
m_gaugePos = pos;
return (int) SendMessage((HWND) GetHWND(), ZYZG_GETPOSITION, 0, 0);
}
-void wxGaugeMSW::SetForegroundColour(const wxColour& col)
+bool wxGaugeMSW::SetForegroundColour(const wxColour& col)
{
- m_foregroundColour = col ;
- SendMessage((HWND) GetHWND(), ZYZG_SETFGCOLOR, 0, RGB(col.Red(), col.Green(), col.Blue()));
+ if ( !wxControl::SetForegroundColour(col) )
+ return FALSE;
+
+ SendMessage((HWND) GetHWND(), ZYZG_SETFGCOLOR, 0, RGB(col.Red(), col.Green(), col.Blue()));
+
+ return TRUE;
}
-void wxGaugeMSW::SetBackgroundColour(const wxColour& col)
+bool wxGaugeMSW::SetBackgroundColour(const wxColour& col)
{
- m_backgroundColour = col ;
- SendMessage((HWND) GetHWND(), ZYZG_SETBKCOLOR, 0, RGB(col.Red(), col.Green(), col.Blue()));
+ if ( !wxControl::SetBackgroundColour(col) )
+ return FALSE;
+
+ SendMessage((HWND) GetHWND(), ZYZG_SETBKCOLOR, 0, RGB(col.Red(), col.Green(), col.Blue()));
+
+ return TRUE;
}
else return;
/* select NULL_PEN for no borders */
- hOldPen = SelectObject(hdc, GetStockObject(NULL_PEN));
+ hOldPen = (HPEN) SelectObject(hdc, GetStockObject(NULL_PEN));
/* select the appropriate color for the fill */
if (fDark)
- hOldBrush = SelectObject(hdc, GetStockObject(GRAY_BRUSH));
+ hOldBrush = (HBRUSH) SelectObject(hdc, GetStockObject(GRAY_BRUSH));
else
- hOldBrush = SelectObject(hdc, GetStockObject(WHITE_BRUSH));
+ hOldBrush = (HBRUSH) SelectObject(hdc, GetStockObject(WHITE_BRUSH));
/* finally, draw the dern thing */
Polygon(hdc, (LPPOINT)&Point, 4);
/* get the includes we need */
-#ifndef __GNUWIN32__
+#if !defined(__GNUWIN32__) && !defined(__SALFORDC__)
#include <malloc.h>
#endif
#include <stdio.h>
/* static global variables */
-static char gszzYzGaugeClass[] = "zYzGauge";
+static wxChar gszzYzGaugeClass[] = _T("zYzGauge");
/* window word position definitions */
static DWORD rgbDefBkColor;
static BOOL fSupport3D;
-#if !defined(APIENTRY) // NT defines APIENTRY, 3.x not
+#if !defined(APIENTRY) // NT defines APIENTRY, 3.x not
#define APIENTRY FAR PASCAL
#endif
/* Get a DC to determine whether device is mono or not, and set
* default foreground/background colors as appropriate.
*/
- if ((hdc = CreateIC("DISPLAY", NULL, NULL, 0L)))
+ if ((hdc = CreateIC(_T("DISPLAY"), NULL, NULL, 0L)))
{
/* check for mono-display */
if ((GetDeviceCaps(hdc, BITSPIXEL) == 1) &&
DWORD dwExtent;
RECT rc1, rc2;
HFONT hFont;
- char ach[ 6 ];
+ wxChar ach[ 6 ];
WORD dx, dy, wGomerX, wGomerY;
/* Win32s has no GetTextExtent(); let's try GetTextExtentPoint() instead,
* which needs a SIZE* parameter */
GetClientRect(hwnd, &rc1);
/* draw a black border on the _outside_ */
- FrameRect(hdc, &rc1, GetStockObject(BLACK_BRUSH));
+ FrameRect(hdc, &rc1, (HBRUSH) GetStockObject(BLACK_BRUSH));
/* we want to draw _just inside_ the black border */
InflateRect(&rc1, -1, -1);
if ((GetWindowLong(hwnd, GWL_STYLE) & ZYZGS_3D) && fSupport3D)
{
Draw3DRect(hdc, &rc1, pgauge->wWidth3D, DRAW3D_OUT);
- InflateRect(&rc1, ~(pgauge->wWidth3D), ~(pgauge->wWidth3D));
+ InflateRect(&rc1, ~(pgauge->wWidth3D), ~(pgauge->wWidth3D));
Draw3DFaceFrame(hdc, &rc1, pgauge->wWidthBezelFace);
- InflateRect(&rc1, ~(pgauge->wWidthBezelFace), ~(pgauge->wWidthBezelFace));
+ InflateRect(&rc1, ~(pgauge->wWidthBezelFace), ~(pgauge->wWidthBezelFace));
Draw3DRect(hdc, &rc1, pgauge->wWidth3D, DRAW3D_IN);
- InflateRect(&rc1, ~(pgauge->wWidth3D), ~(pgauge->wWidth3D));
+ InflateRect(&rc1, ~(pgauge->wWidth3D), ~(pgauge->wWidth3D));
/* draw a black border on the _inside_ */
- FrameRect(hdc, &rc1, GetStockObject(BLACK_BRUSH));
+ FrameRect(hdc, &rc1, (HBRUSH) GetStockObject(BLACK_BRUSH));
/* we want to draw _just inside_ the black border */
InflateRect(&rc1, -1, -1);
} /* switch () */
/* select the correct font */
- hFont = SelectObject(hdc, pgauge->hFont);
+ hFont = (HFONT) SelectObject(hdc, pgauge->hFont);
/* build up a string to blit out--ie the meaning of life: "42%" */
- wsprintf(ach, "%3d%%", (WORD)((DWORD)iPos * 100 / iRange));
+ wsprintf(ach, _T("%3d%%"), (WORD)((DWORD)iPos * 100 / iRange));
/* Win32s has no GetTextExtent(); let's try GetTextExtentPoint() instead */
#if defined(__WIN32__)
GetTextExtentPoint(hdc, ach, wGomerX = lstrlen(ach), &size);
else
wParam = 1;
- InflateRect(&rc, ~(wParam), ~(wParam));
+ InflateRect(&rc, ~(wParam), ~(wParam));
InvalidateRect(hwnd, &rc, FALSE);
UpdateWindow(hwnd);
return (0L);
case WM_SETFONT:
/* if NULL hFont, use system font */
if (!(hFont = (HFONT)wParam))
- hFont = GetStockObject(SYSTEM_FONT);
+ hFont = (HFONT) GetStockObject(SYSTEM_FONT);
pgauge->hFont = hFont;
/** EOF: zyzgauge.c **/
-#endif // USE_GAUGE
+#endif // wxUSE_GAUGE