HPS hPS;
RECTL vRect;
RECTL vRect2;
+ RECTL vRect3;
double dPixelToRange = 0.0;
double dRange = 0.0;
,0L
,NULL
);
+ //
+ // Draw the guage box
+ //
+ LONG lColor = 0x00FFFFFF; // White
+ POINTL vPoint = {vRect.xLeft + 1, vRect.yBottom + 1};
+
+ ::GpiSetColor(hPS, lColor);
+ ::GpiMove(hPS, &vPoint);
+ vPoint.x = vRect.xRight - 1;
+ ::GpiLine(hPS, &vPoint);
+ vPoint.y = vRect.yTop - 1;
+ ::GpiLine(hPS, &vPoint);
+ lColor = 0x000C0C0C; // Darkish Grey to give depth feel
+ ::GpiSetColor(hPS, lColor);
+ vPoint.x = vRect.xLeft + 1;
+ ::GpiLine(hPS, &vPoint);
+ vPoint.y = vRect.yBottom + 1;
+ ::GpiLine(hPS, &vPoint);
+ vRect3.xLeft = vRect.xLeft + 2;
+ vRect3.xRight = vRect.xRight - 2;
+ vRect3.yTop = vRect.yTop - 2;
+ vRect3.yBottom = vRect.yBottom + 2;
+
if (pGauge->GetWindowStyleFlag() & wxGA_VERTICAL)
{
- dRange = (double)(vRect.yTop - vRect.yBottom);
+ dRange = (double)(vRect3.yTop - vRect3.yBottom);
dPixelToRange = dRange/(double)pGauge->GetRange();
vRect2.yTop = (int)(pGauge->GetValue() * dPixelToRange);
- vRect2.yBottom = vRect.yBottom;
- vRect2.xLeft = vRect.xLeft;
- vRect2.xRight = vRect.xRight;
- vRect.yBottom = vRect2.yTop;
- ::WinFillRect(hPS, &vRect, pGauge->GetBackgroundColour().GetPixel());
+ vRect2.yBottom = vRect3.yBottom;
+ vRect2.xLeft = vRect3.xLeft;
+ vRect2.xRight = vRect3.xRight;
+ vRect3.yBottom = vRect2.yTop;
+ if (vRect3.yBottom <= 1)
+ vRect3.yBottom = 2;
+ ::WinFillRect(hPS, &vRect3, pGauge->GetBackgroundColour().GetPixel());
::WinFillRect(hPS, &vRect2, pGauge->GetForegroundColour().GetPixel());
}
else
{
- dRange = (double)(vRect.xRight - vRect.xLeft);
+ dRange = (double)(vRect3.xRight - vRect3.xLeft);
dPixelToRange = dRange/(double)pGauge->GetRange();
- vRect2.yTop = vRect.yTop;
- vRect2.yBottom = vRect.yBottom;
- vRect2.xLeft = vRect.xLeft;
+ vRect2.yTop = vRect3.yTop;
+ vRect2.yBottom = vRect3.yBottom;
+ vRect2.xLeft = vRect3.xLeft;
vRect2.xRight = (int)(pGauge->GetValue() * dPixelToRange);
- vRect.xLeft = vRect2.xRight;
- ::WinFillRect(hPS, &vRect, pGauge->GetBackgroundColour().GetPixel());
+ vRect3.xLeft = vRect2.xRight;
+ if (vRect3.xLeft <= 1)
+ vRect3.xLeft = 2;
+ ::WinFillRect(hPS, &vRect3, pGauge->GetBackgroundColour().GetPixel());
::WinFillRect(hPS, &vRect2, pGauge->GetForegroundColour().GetPixel());
}
::WinEndPaint(hPS);
#endif
if (pParent)
pParent->AddChild(this);
- SetBackgroundColour(pParent->GetBackgroundColour()) ;
- SetForegroundColour(pParent->GetForegroundColour()) ;
+ m_backgroundColour.Set(wxString("LIGHT GREY"));
+ m_foregroundColour.Set(wxString("NAVY"));
m_nRangeMax = nRange;
m_nGaugePos = 0;
,sizeof(LONG)
,(PVOID)&lColor
);
- wxFont* pTextFont = new wxFont( 10
- ,wxMODERN
- ,wxNORMAL
- ,wxNORMAL
- );
- SetFont(*pTextFont);
+ SetFont(*wxSMALL_FONT);
SetSize( rPos.x
,rPos.y
,rSize.x
,rSize.y
);
- delete pTextFont;
return TRUE;
} // end of wxStaticBox::Create
);
SubclassWin(m_hWnd);
- wxFont* pTextFont = new wxFont( 10
- ,wxMODERN
- ,wxNORMAL
- ,wxNORMAL
- );
- wxControl::SetFont(*pTextFont);
+ SetFont(*wxSMALL_FONT);
+ SetXComp(0);
+ SetYComp(0);
SetSize( nX
,nY
,nWidth
,nHeight
);
- delete pTextFont;
return TRUE;
} // end of wxStaticText::Create
//
if (!(GetWindowStyle() & wxST_NO_AUTORESIZE))
{
- DoSetSize(-1, -1, -1, -1, wxSIZE_AUTO_WIDTH | wxSIZE_AUTO_HEIGHT);
+ wxCoord vX;
+ wxCoord vY;
+ wxCoord vWidth;
+ wxCoord vHeight;
+
+ GetPosition(&vX, &vY);
+ GetSize(&vWidth, &vHeight);
+ if (!(vX == -1 && vY == -1 && vWidth == -1 && vHeight == -1))
+ DoSetSize(vX, vY, vWidth, vHeight, wxSIZE_AUTO_WIDTH | wxSIZE_AUTO_HEIGHT);
+ else
+ DoSetSize(-1, -1, -1, -1, wxSIZE_AUTO_WIDTH | wxSIZE_AUTO_HEIGHT);
}
- DoSetSize(-1, -1, -1, -1, wxSIZE_AUTO_WIDTH | wxSIZE_AUTO_HEIGHT);
} // end of wxStaticText::SetLabel
MRESULT wxStaticText::OS2WindowProc(
int nY2 = nY;
wxWindow* pParent = (wxWindow*)GetParent();
- if (pParent && !IsKindOf(CLASSINFO(wxDialog)))
- {
- int nOS2Height = GetOS2ParentHeight(pParent);
-
- nY2 = nOS2Height - (nY2 + nHeight);
- }
- else
- {
- RECTL vRect;
-
- ::WinQueryWindowRect(HWND_DESKTOP, &vRect);
- nY2 = vRect.yTop - (nY2 + nHeight);
- }
if (nX == nCurrentX && nY2 == nCurrentY &&
nWidth == nCurrentWidth && nHeight == nCurrentHeight)
{
, int nHeight
)
{
- wxWindow* pParent = GetParent();
- HWND hWnd = GetHwnd();
- HWND hParentWnd = (HWND)0;
POINTL vPoint;
- RECTL vRect;
- RECTL vRect2;
- RECTL vRect3;
- HWND hClientWnd = (HWND)0;
+ int nActualWidth;
+ int nActualHeight;
+ wxWindow* pParent = (wxWindow*)GetParent();
+ HWND hParentWnd = (HWND)0;
- hClientWnd = ::WinWindowFromID(hWnd, FID_CLIENT);
- ::WinQueryWindowRect(hClientWnd, &vRect2);
- ::WinQueryWindowRect(hWnd, &vRect);
- ::WinQueryWindowRect(hParentWnd, &vRect3);
+ if (pParent)
+ hParentWnd = (HWND)pParent->GetHWND();
- int nActualWidth = vRect2.xRight - vRect2.xLeft - vRect.xRight + nWidth;
- int nActualHeight = vRect2.yTop - vRect2.yBottom - vRect.yTop + nHeight;
+ if (IsKindOf(CLASSINFO(wxFrame)))
+ {
+ wxFrame* pFrame = wxDynamicCast(this, wxFrame);
+ HWND hFrame = pFrame->GetFrame();
+ RECTL vRect;
+ RECTL vRect2;
+ RECTL vRect3;
- vPoint.x = vRect2.xLeft;
- vPoint.y = vRect2.yBottom;
- if (pParent)
+ ::WinQueryWindowRect(GetHwnd(), &vRect2);
+ ::WinQueryWindowRect(hFrame, &vRect);
+ ::WinQueryWindowRect(hParentWnd, &vRect3);
+ nActualWidth = vRect2.xRight - vRect2.xLeft - vRect.xRight + nWidth;
+ nActualHeight = vRect2.yTop - vRect2.yBottom - vRect.yTop + nHeight;
+
+ vPoint.x = vRect2.xLeft;
+ vPoint.y = vRect2.yBottom;
+ if (pParent)
+ {
+ vPoint.x -= vRect3.xLeft;
+ vPoint.y -= vRect3.yBottom;
+ }
+ }
+ else
{
- vPoint.x -= vRect3.xLeft;
- vPoint.y -= vRect3.yBottom;
+ int nX;
+ int nY;
+
+ GetPosition(&nX, &nY);
+ nActualWidth = nWidth;
+ nActualHeight = nHeight;
+
+ vPoint.x = nX;
+ vPoint.y = nY;
}
+ DoMoveWindow( vPoint.x
+ ,vPoint.y
+ ,nActualWidth
+ ,nActualHeight
+ );
- DoMoveWindow(vPoint.x, vPoint.y, nActualWidth, nActualHeight);
+ wxSizeEvent vEvent( wxSize( nWidth
+ ,nHeight
+ )
+ ,m_windowId
+ );
- wxSizeEvent vEvent(wxSize(nWidth, nHeight), m_windowId);
vEvent.SetEventObject(this);
GetEventHandler()->ProcessEvent(vEvent);
} // end of wxWindowOS2::DoSetClientSize
, short* pnY
)
{
- wxCHECK_MSG( pnX && pnY, pWin, _T("NULL pointer in FindWindowForMouseEvent") );
- POINTL vPoint = { *pnX, *pnY };
HWND hWnd = GetHwndOf(pWin);
HWND hWndUnderMouse;
+ POINTL vPoint;
+ BOOL rcEnabled = FALSE;
+ BOOL rcVisible = FALSE;
+ HWND hWndDesktop = HWND_DESKTOP;
- //
- // First try to find a non transparent child: this allows us to send events
- // to a static text which is inside a static box, for example
- //
-
- hWndUnderMouse = ::WinWindowFromPoint( hWnd
- ,&vPoint
- ,TRUE
- );
- if (!hWndUnderMouse || hWndUnderMouse == hWnd)
+ ::WinQueryPointerPos(HWND_DESKTOP, &vPoint);
+ hWndUnderMouse = ::WinWindowFromPoint(HWND_DESKTOP, &vPoint, TRUE);
+ if (hWndUnderMouse != HWND_DESKTOP)
{
- //
- // Now try any child window at all
- //
- hWndUnderMouse = ::WinWindowFromPoint( HWND_DESKTOP
- ,&vPoint
- ,TRUE
- );
+ wxWindow* pWinUnderMouse = wxFindWinFromHandle((WXHWND)hWndUnderMouse);
+
+ if (pWinUnderMouse)
+ {
+ wxWindowList::Node* pCurrent = pWinUnderMouse->GetChildren().GetFirst();
+ wxWindow* pChild = NULL;
+ wxWindow* pGrandChild = NULL;
+ RECTL vRect;
+ POINTL vPoint2;
+
+ ::WinMapWindowPoints(HWND_DESKTOP, hWndUnderMouse, &vPoint, 1);
+ //
+ // Find a child window mouse might be under
+ //
+ while (pCurrent)
+ {
+ wxWindow* pChild = pCurrent->GetData();
+
+ vPoint2.x = vPoint.x;
+ vPoint2.y = vPoint.y;
+ ::WinMapWindowPoints(hWndUnderMouse, pChild->GetHWND(), &vPoint2, 1);
+ ::WinQueryWindowRect(pChild->GetHWND(), &vRect);
+ if (::WinPtInRect(vHabmain, &vRect, &vPoint2))
+ {
+ if (pChild->IsTopLevel())
+ {
+ POINTL vPoint3;
+ wxWindowList::Node* pCurrent2 =pChild->GetChildren().GetFirst();
+ while (pCurrent2)
+ {
+ wxWindow* pGrandChild = pCurrent2->GetData();
+
+ vPoint3.x = vPoint2.x;
+ vPoint3.y = vPoint2.y;
+ ::WinMapWindowPoints( pChild->GetHWND()
+ ,pGrandChild->GetHWND()
+ ,&vPoint3
+ ,1
+ );
+ ::WinQueryWindowRect(pGrandChild->GetHWND(), &vRect);
+ if (::WinPtInRect(vHabmain, &vRect, &vPoint3))
+ {
+ hWndUnderMouse = GetHwndOf(pGrandChild);
+ pWinUnderMouse = pGrandChild;
+ break;
+ }
+ pCurrent2 = pCurrent2->GetNext();
+ }
+ if (pGrandChild)
+ break;
+ }
+ hWndUnderMouse = GetHwndOf(pChild);
+ pWinUnderMouse = pChild;
+ rcVisible = ::WinIsWindowVisible(hWndUnderMouse);
+ rcEnabled = ::WinIsWindowEnabled(hWndUnderMouse);
+ if (rcVisible && rcEnabled)
+ break;
+ }
+ pCurrent = pCurrent->GetNext();
+ }
+ }
}
+ rcVisible = ::WinIsWindowVisible(hWndUnderMouse);
+ rcEnabled = ::WinIsWindowEnabled(hWndUnderMouse);
+
//
// Check that we have a child window which is susceptible to receive mouse
// events: for this it must be shown and enabled
+ //
if ( hWndUnderMouse &&
hWndUnderMouse != hWnd &&
- ::WinIsWindowVisible(hWndUnderMouse) &&
- ::WinIsWindowEnabled(hWndUnderMouse))
+ rcVisible && rcEnabled)
{
- wxWindow* pWinUnderMouse = wxFindWinFromHandle((WXHWND)hWndUnderMouse);
+ wxWindow* pWinUnderMouse = wxFindWinFromHandle((WXHWND)hWndUnderMouse);
+
if (pWinUnderMouse)
{
- // translate the mouse coords to the other window coords
- pWin->ClientToScreen( (int*)pnX
- ,(int*)pnY
- );
- pWinUnderMouse->ScreenToClient( (int*)pnX
- ,(int*)pnY
- );
+ //
+ // Translate the mouse coords to the other window coords
+ //
pWin = pWinUnderMouse;
}
}
CODE LOADONCALL
EXPORTS
-;From library: F:\Dev\Wx2\WxWindows\LIB\wx.lib
+;From library: H:\DEV\WX2\WXWINDOWS\LIB\wx.lib
;From object file: dummy.cpp
;PUBDEFs (Symbols available from object file):
wxDummyChar
wxEVT_NC_LEFT_DCLICK
wxEVT_INIT_DIALOG
wxEVT_COMMAND_SET_FOCUS
- ;From object file: F:\DEV\WX2\WXWINDOWS\src\common\extended.c
+ ;From object file: H:\DEV\WX2\WXWINDOWS\src\common\extended.c
;PUBDEFs (Symbols available from object file):
ConvertToIeeeExtended
ConvertFromIeeeExtended
Get__15wxMessageOutputFv
;wxMessageOutput::ms_msgOut
ms_msgOut__15wxMessageOutput
+ ;wxMessageOutputLog::Printf(const char*,...)
+ Printf__18wxMessageOutputLogFPCce
;wxMessageOutput::Set(wxMessageOutput*)
Set__15wxMessageOutputFP15wxMessageOutput
__vft25wxMessageOutputMessageBox15wxMessageOutput
__vft21wxMessageOutputStderr15wxMessageOutput
+ __vft18wxMessageOutputLog15wxMessageOutput
;wxMessageOutputStderr::Printf(const char*,...)
Printf__21wxMessageOutputStderrFPCce
;From object file: ..\common\mstream.cpp
Read32__17wxTextInputStreamFv
;wxTextInputStream::SkipIfEndOfLine(char)
SkipIfEndOfLine__17wxTextInputStreamFc
- ;From object file: F:\DEV\WX2\WXWINDOWS\src\common\unzip.c
+ ;From object file: H:\DEV\WX2\WXWINDOWS\src\common\unzip.c
;PUBDEFs (Symbols available from object file):
unzReadCurrentFile
unzGetCurrentFileInfo
SetItem__17wxGenericListCtrlFR10wxListItem
;wxListLineData::SetItem(int,const wxListItem&)
SetItem__14wxListLineDataFiRC10wxListItem
+ ;wxGenericListCtrl::SetImageList(wxGenericImageList*,int)
+ SetImageList__17wxGenericListCtrlFP18wxGenericImageListi
;wxGenericListCtrl::SetColumnWidth(int,int)
SetColumnWidth__17wxGenericListCtrlFiT1
;wxGenericListCtrl::ScrollList(int,int)
SetItem__16wxListHeaderDataFRC10wxListItem
;wxListMainWindow::SetItemState(long,long,long)
SetItemState__16wxListMainWindowFlN21
- ;wxListMainWindow::SetImageList(wxImageList*,int)
- SetImageList__16wxListMainWindowFP11wxImageListi
+ ;wxListMainWindow::SetImageList(wxGenericImageList*,int)
+ SetImageList__16wxListMainWindowFP18wxGenericImageListi
;wxGenericListCtrl::SetColumn(int,wxListItem&)
SetColumn__17wxGenericListCtrlFiR10wxListItem
;wxListMainWindow::SetColumnWidth(int,int)
DeleteColumn__17wxGenericListCtrlFi
;wxListMainWindow::CacheLineData(unsigned int)
CacheLineData__16wxListMainWindowFUi
- ;wxGenericListCtrl::AssignImageList(wxImageList*,int)
- AssignImageList__17wxGenericListCtrlFP11wxImageListi
;wxGenericListCtrl::GetNextItem(long,int,int) const
GetNextItem__17wxGenericListCtrlCFliT2
;wxConstructorForwxListCtrl()
DrawImage__16wxListMainWindowFiP4wxDCN21
;wxListMainWindow::ChangeCurrent(unsigned int)
ChangeCurrent__16wxListMainWindowFUi
+ ;wxGenericListCtrl::AssignImageList(wxGenericImageList*,int)
+ AssignImageList__17wxGenericListCtrlFP18wxGenericImageListi
;wxGenericListCtrl::~wxGenericListCtrl()
__dt__17wxGenericListCtrlFv
wxEVT_COMMAND_LIST_KEY_DOWN
SetItem__16wxListMainWindowFR10wxListItem
;wxListItemData::SetItem(const wxListItem&)
SetItem__14wxListItemDataFRC10wxListItem
- ;wxGenericListCtrl::SetImageList(wxImageList*,int)
- SetImageList__17wxGenericListCtrlFP11wxImageListi
;wxListMainWindow::SetColumn(int,wxListItem&)
SetColumn__16wxListMainWindowFiR10wxListItem
;wxListLineDataArray::RemoveAt(unsigned int,unsigned int)