2001-08-28 19:21 GMT+2 Maurilio Longo <maurilio.longo@libero.it>
* contrib/os2pm/*.*
* changes to every file to add menu creation capabilities
This commit is contained in:
@@ -1,3 +1,7 @@
|
||||
2001-08-28 19:21 GMT+2 Maurilio Longo <maurilio.longo@libero.it>
|
||||
* contrib/os2pm/*.*
|
||||
* changes to every file to add menu creation capabilities
|
||||
|
||||
2001-08-27 20:50 GMT -3 Luiz Rafael Culik <culik@sl.conex.net>
|
||||
*utils/hbmake/hbmake.prg
|
||||
* Fixes related to path finding to Apps(C compiler and harbour.exe)
|
||||
|
||||
@@ -56,9 +56,8 @@
|
||||
|
||||
#define INCL_BASE
|
||||
#define INCL_PM
|
||||
|
||||
|
||||
#include <os2.h>
|
||||
|
||||
#include "hbapi.h"
|
||||
|
||||
|
||||
@@ -68,13 +67,33 @@ HAB hb_pm_GetHab( void );
|
||||
HB_FUNC( WINREGISTERCLASS )
|
||||
{
|
||||
|
||||
hb_retl( WinRegisterClass( hb_pm_GetHab(), /* anchor block handle */
|
||||
hb_parc( 1 ), /* Class Name */
|
||||
( PFNWP ) WinDefWindowProc, /* default Class procedure */
|
||||
hb_parnl( 2 ), /* style */
|
||||
hb_parnl( 3 ) ) ); /* extra bytes */
|
||||
hb_retl( WinRegisterClass( hb_pm_GetHab(), /* anchor block handle */
|
||||
hb_parc( 1 ), /* Class Name */
|
||||
( PFNWP ) WinDefWindowProc, /* default Class procedure */
|
||||
hb_parnl( 2 ), /* style */
|
||||
hb_parnl( 3 ) ) ); /* extra bytes */
|
||||
}
|
||||
|
||||
|
||||
HB_FUNC(WINCREATEWINDOW)
|
||||
{
|
||||
hb_retnl((LONG) WinCreateWindow( (HWND) hb_parnl(1), /* hWnd parent */
|
||||
(PCSZ) hb_parc(2), /* pszClass */
|
||||
(PCSZ) hb_parc(3), /* pszName */
|
||||
(ULONG) hb_parnl(4), /* flStyle */
|
||||
(LONG) hb_parnl(5), /* x */
|
||||
(LONG) hb_parnl(6), /* y */
|
||||
(LONG) hb_parnl(7), /* cx */
|
||||
(LONG) hb_parnl(8), /* cy */
|
||||
(HWND) hb_parnl(9), /* hwndOwner */
|
||||
(HWND) hb_parnl(10), /* hwndInsertBehind */
|
||||
(ULONG) hb_parnl(11), /* id */
|
||||
(PVOID) hb_parnl(12), /* pCtlData, */
|
||||
(PVOID) hb_parnl(13))); /* pPresParams */
|
||||
|
||||
}
|
||||
|
||||
|
||||
HB_FUNC( WINCREATESTDWINDOW )
|
||||
{
|
||||
ULONG lFrame = hb_parnl( 3 );
|
||||
@@ -82,18 +101,19 @@ HB_FUNC( WINCREATESTDWINDOW )
|
||||
|
||||
hb_retnl( ( LONG ) hWndFrame =
|
||||
WinCreateStdWindow( ( HWND ) hb_parnl( 1 ), /* hWndParent */
|
||||
hb_parnl( 2 ), /* style */
|
||||
&lFrame, /* lFrame */
|
||||
hb_parc( 4 ), /* cClassName */
|
||||
hb_parc( 5 ), /* cCaption */
|
||||
hb_parnl( 6 ), /* lStyleClient */
|
||||
hb_parnl( 7 ), /* hModule */
|
||||
hb_parnl( 8 ), /* nId */
|
||||
( PHWND ) &hWndClient ) ); /* Window client handle */
|
||||
hb_parnl( 2 ), /* style */
|
||||
&lFrame, /* lFrame */
|
||||
hb_parc( 4 ), /* cClassName */
|
||||
hb_parc( 5 ), /* cCaption */
|
||||
hb_parnl( 6 ), /* lStyleClient */
|
||||
hb_parnl( 7 ), /* hModule */
|
||||
hb_parnl( 8 ), /* nId */
|
||||
( PHWND ) &hWndClient ) ); /* Window client handle */
|
||||
|
||||
hb_stornl( ( LONG ) hWndClient, 9 );
|
||||
}
|
||||
|
||||
|
||||
HB_FUNC( HB_PM_SHOWMODAL )
|
||||
{
|
||||
QMSG qmsg;
|
||||
@@ -105,8 +125,8 @@ HB_FUNC( HB_PM_SHOWMODAL )
|
||||
}
|
||||
}
|
||||
|
||||
/* nOr() is a very used function */
|
||||
|
||||
/* nOr() is a very used function */
|
||||
HB_FUNC( NOR )
|
||||
{
|
||||
LONG lRet = 0;
|
||||
@@ -161,7 +181,8 @@ HB_FUNC( GETHAB )
|
||||
HB_FUNC( WINCREATEMENU )
|
||||
{
|
||||
hb_retnl( ( LONG ) WinCreateMenu( ( HWND ) hb_parnl( 1 ),
|
||||
( PVOID ) hb_parnl( 2 ) ) );
|
||||
(PVOID) NULL /*( PVOID ) hb_parnl( 2 )*/ ) );
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1827,30 +1827,31 @@
|
||||
#define CTLS_WM_BIDI_LAST 0x39f
|
||||
#define WM_DBCSFIRST 0x00b0
|
||||
#define WM_DBCSLAST 0x00cf
|
||||
#define WC_FRAME ((PSZ)0xffff0001)
|
||||
#define WC_COMBOBOX ((PSZ)0xffff0002)
|
||||
#define WC_BUTTON ((PSZ)0xffff0003)
|
||||
#define WC_MENU ((PSZ)0xffff0004)
|
||||
#define WC_STATIC ((PSZ)0xffff0005)
|
||||
#define WC_ENTRYFIELD ((PSZ)0xffff0006)
|
||||
#define WC_LISTBOX ((PSZ)0xffff0007)
|
||||
#define WC_SCROLLBAR ((PSZ)0xffff0008)
|
||||
#define WC_TITLEBAR ((PSZ)0xffff0009)
|
||||
#define WC_MLE ((PSZ)0xffff000a)
|
||||
#define WC_APPSTAT ((PSZ)0xffff0010)
|
||||
#define WC_KBDSTAT ((PSZ)0xffff0011)
|
||||
#define WC_PECIC ((PSZ)0xffff0012)
|
||||
#define WC_DBE_KKPOPUP ((PSZ)0xffff0013)
|
||||
#define WC_SPINBUTTON ((PSZ)0xffff0020)
|
||||
#define WC_CONTAINER ((PSZ)0xffff0025)
|
||||
#define WC_SLIDER ((PSZ)0xffff0026)
|
||||
#define WC_VALUESET ((PSZ)0xffff0027)
|
||||
#define WC_NOTEBOOK ((PSZ)0xffff0028)
|
||||
#define WC_PENFIRST ((PSZ)0xffff0029)
|
||||
#define WC_PENLAST ((PSZ)0xffff002c)
|
||||
#define WC_MMPMFIRST ((PSZ)0xffff0040)
|
||||
#define WC_CIRCULARSLIDER ((PSZ)0xffff0041)
|
||||
#define WC_MMPMLAST ((PSZ)0xffff004f)
|
||||
|
||||
#define WC_FRAME 0xffff0001
|
||||
#define WC_COMBOBOX 0xffff0002
|
||||
#define WC_BUTTON 0xffff0003
|
||||
#define WC_MENU 0xffff0004
|
||||
#define WC_STATIC 0xffff0005
|
||||
#define WC_ENTRYFIELD 0xffff0006
|
||||
#define WC_LISTBOX 0xffff0007
|
||||
#define WC_SCROLLBAR 0xffff0008
|
||||
#define WC_TITLEBAR 0xffff0009
|
||||
#define WC_MLE 0xffff000a
|
||||
#define WC_APPSTAT 0xffff0010
|
||||
#define WC_KBDSTAT 0xffff0011
|
||||
#define WC_PECIC 0xffff0012
|
||||
#define WC_DBE_KKPOPUP 0xffff0013
|
||||
#define WC_SPINBUTTON 0xffff0020
|
||||
#define WC_CONTAINER 0xffff0025
|
||||
#define WC_SLIDER 0xffff0026
|
||||
#define WC_VALUESET 0xffff0027
|
||||
#define WC_NOTEBOOK 0xffff0028
|
||||
#define WC_PENFIRST 0xffff0029
|
||||
#define WC_PENLAST 0xffff002c
|
||||
#define WC_MMPMFIRST 0xffff0040
|
||||
#define WC_CIRCULARSLIDER 0xffff0041
|
||||
#define WC_MMPMLAST 0xffff004f
|
||||
|
||||
#define WS_VISIBLE 0x80000000
|
||||
#define WS_DISABLED 0x40000000
|
||||
|
||||
@@ -60,14 +60,14 @@
|
||||
CLASS TForm
|
||||
|
||||
DATA hWnd
|
||||
DATA oMainMenu
|
||||
DATA oMainMenu
|
||||
|
||||
CLASSDATA lRegistered
|
||||
|
||||
METHOD New()
|
||||
METHOD ShowModal()
|
||||
METHOD cCaption() INLINE WinGetText( ::hWnd )
|
||||
|
||||
METHOD cCaption() INLINE WinGetText( ::hWnd )
|
||||
METHOD _cCaption( cNewCaption ) INLINE ;
|
||||
WinSetWindowText( ::hWnd, cNewCaption )
|
||||
|
||||
|
||||
@@ -54,17 +54,20 @@
|
||||
|
||||
|
||||
#include "hbclass.ch"
|
||||
#include "os2pm.ch"
|
||||
|
||||
|
||||
CLASS TMenu
|
||||
|
||||
DATA nHandle
|
||||
DATA aItems
|
||||
DATA nHandle // Handle of this SUBMENU (be it top level or drop down)
|
||||
DATA aItems // Items inside this menu
|
||||
|
||||
METHOD New( oForm )
|
||||
METHOD Add( oMenuItem )
|
||||
|
||||
ENDCLASS
|
||||
|
||||
|
||||
METHOD New( oForm ) CLASS TMenu
|
||||
|
||||
::aItems = {}
|
||||
@@ -72,11 +75,14 @@ METHOD New( oForm ) CLASS TMenu
|
||||
|
||||
return Self
|
||||
|
||||
|
||||
METHOD Add( oMenuItem ) CLASS TMenu
|
||||
|
||||
WinAddMenuItem( ::nHandle, oMenuItem:cCaption, Len( ::aItems ),;
|
||||
nil, oMenuItem:nId, oMenuItem:lActive )
|
||||
WinAddMenuItem( ::nHandle, oMenuItem:cCaption, MIT_END,;
|
||||
oMenuItem:nHandle, oMenuItem:nId, oMenuItem:lEnabled )
|
||||
|
||||
AAdd( ::aItems, oMenuItem )
|
||||
|
||||
return nil
|
||||
|
||||
|
||||
|
||||
@@ -55,26 +55,50 @@
|
||||
|
||||
#include "common.ch"
|
||||
#include "hbclass.ch"
|
||||
#include "os2pm.ch"
|
||||
|
||||
|
||||
CLASS TMenuItem
|
||||
|
||||
DATA cCaption
|
||||
DATA cAction
|
||||
DATA nId
|
||||
DATA lActive
|
||||
DATA cCaption // Specifies the text of the menu item
|
||||
DATA OnClick // A character description of the method to invoke
|
||||
DATA nId // Command value to send to the container form
|
||||
DATA lEnabled // Specifies whether the menu item is enabled
|
||||
|
||||
CLASSDATA nIdStart
|
||||
DATA aItems // Contains the menu items in the submenu of the menu item
|
||||
DATA oParent // Identifies the parent menu item of this menu item
|
||||
DATA nHandle // The handle of _this_ menu item
|
||||
|
||||
METHOD New()
|
||||
CLASSDATA nIdStart // start value for commands value to assign to menu items
|
||||
|
||||
METHOD New( oOwner ) // Creates a new menu item
|
||||
METHOD Add( oMenuItem ) // Adds a new drop down menu item
|
||||
|
||||
ENDCLASS
|
||||
|
||||
METHOD New() CLASS TMenuItem
|
||||
|
||||
METHOD New( oOwner ) CLASS TMenuItem
|
||||
|
||||
DEFAULT ::nIdStart TO 110
|
||||
|
||||
::cCaption = ""
|
||||
::nId = ::nIdStart++
|
||||
::lActive = .t.
|
||||
::lEnabled = .t.
|
||||
::oParent = oOwner
|
||||
::nHandle := WinCreateMenu( ::oParent:nHandle )
|
||||
::aItems := {}
|
||||
|
||||
return Self
|
||||
|
||||
|
||||
METHOD Add( oMenuItem ) CLASS TMenuItem
|
||||
|
||||
WinAddMenuItem( ::nHandle, oMenuItem:cCaption, MIT_END,;
|
||||
nil, oMenuItem:nId, oMenuItem:lEnabled )
|
||||
|
||||
AAdd( ::aItems, oMenuItem )
|
||||
|
||||
return nil
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user