Update of /cvsroot/htoolkit/port/src/cbits/Win32
In directory sc8-pr-cvs1:/tmp/cvs-serv5400/port/src/cbits/Win32
Modified Files:
PopUp.c
Log Message:
bugfix
Index: PopUp.c
===================================================================
RCS file: /cvsroot/htoolkit/port/src/cbits/Win32/PopUp.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** PopUp.c 24 Aug 2003 21:07:48 -0000 1.5
--- PopUp.c 26 Aug 2003 21:23:52 -0000 1.6
***************
*** 1,82 ****
! #include "PopUp.h"
! #include "Internals.h"
! #include "Handlers_stub.h"
!
! WindowHandle osCreatePopUp(WindowHandle window)
! {
! HWND hPopUp;
!
! hPopUp = CreateWindow(
! "COMBOBOX",
! NULL,
! WS_CHILD | WS_VISIBLE | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,
! 0,0,0,0,
! window,
! NULL,
! ghModule,
! NULL
! );
! return checkWindow(hPopUp, "POPUP");
! };
!
! void osAppendPopUpItem(WindowHandle popup, char *title)
! {
! SendMessage(popup, CB_ADDSTRING, 0, (LPARAM) title);
! osForceContainerReLayout(popup);
! };
!
! void osInsertPopUpItem(WindowHandle popup, int index, char *title)
! {
! SendMessage(popup, CB_INSERTSTRING, index, (LPARAM) title);
! osForceContainerReLayout(popup);
! };
!
! void osRemovePopUpItem(WindowHandle popup, int index)
! {
! SendMessage(popup, CB_DELETESTRING, index, 0);
! osForceContainerReLayout(popup);
! };
!
! void osRemoveAllPopUpItems(WindowHandle popup)
! {
! SendMessage(popup, CB_RESETCONTENT,0,0);
! osForceContainerReLayout(popup);
! };
!
! void osGetPopUpReqSize(WindowHandle popup, int *res)
! {
! SIZE sz;
! int i,nCount, nLen, width;
! char *buffer;
! HDC hDC = GetDC(popup);
!
! width = 10;
! nCount = SendMessage(popup,CB_GETCOUNT,0,0);
! for (i = 0; i < nCount; i++)
! {
! nLen = SendMessage(popup,CB_GETLBTEXTLEN,i,0);
! buffer = (char *) rmalloc(nLen+1);
! nLen = SendMessage(popup,CB_GETLBTEXT,i,(LPARAM)buffer);
!
! GetTextExtentPoint32(hDC, buffer, nLen, &sz);
!
! rfree(buffer);
!
! if (width < sz.cx) width = sz.cx;
! }
!
! ReleaseDC(popup, hDC);
!
! res[0] = width + GetSystemMetrics(SM_CXVSCROLL);
! res[1] = 20;
! };
!
! int osGetPopUpSelection(WindowHandle popup)
! {
! return SendMessage(popup, CB_GETCURSEL, 0, 0);
! };
!
! void osSetPopUpSelection(WindowHandle popup, int index)
! {
! SendMessage(popup, CB_SETCURSEL, index, 0);
! };
--- 1,83 ----
! #include "PopUp.h"
! #include "Internals.h"
! #include "Handlers_stub.h"
!
! WindowHandle osCreatePopUp(WindowHandle window)
! {
! HWND hPopUp;
!
! hPopUp = CreateWindow(
! "COMBOBOX",
! NULL,
! WS_CHILD | WS_VISIBLE | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,
! 0,0,0,0,
! window,
! NULL,
! ghModule,
! NULL
! );
! return checkWindow(hPopUp, "POPUP");
! };
!
! void osAppendPopUpItem(WindowHandle popup, char *title)
! {
! SendMessage(popup, CB_ADDSTRING, 0, (LPARAM) title);
! osForceContainerReLayout(popup);
! };
!
! void osInsertPopUpItem(WindowHandle popup, int index, char *title)
! {
! SendMessage(popup, CB_INSERTSTRING, index, (LPARAM) title);
! osForceContainerReLayout(popup);
! };
!
! void osRemovePopUpItem(WindowHandle popup, int index)
! {
! SendMessage(popup, CB_DELETESTRING, index, 0);
! osForceContainerReLayout(popup);
! };
!
! void osRemoveAllPopUpItems(WindowHandle popup)
! {
! SendMessage(popup, CB_RESETCONTENT,0,0);
! osForceContainerReLayout(popup);
! };
!
! void osGetPopUpReqSize(WindowHandle popup, int *res)
! {
! SIZE sz;
! int i,nCount, nLen, width;
! char *buffer;
! HDC hDC = GetDC(popup);
!
! width = 10;
! nCount = SendMessage(popup,CB_GETCOUNT,0,0);
! for (i = 0; i < nCount; i++)
! {
! nLen = SendMessage(popup,CB_GETLBTEXTLEN,i,0);
! buffer = (char *) rmalloc(nLen+1);
! nLen = SendMessage(popup,CB_GETLBTEXT,i,(LPARAM)buffer);
!
! GetTextExtentPoint32(hDC, buffer, nLen, &sz);
!
! rfree(buffer);
!
! if (width < sz.cx) width = sz.cx;
! }
!
! ReleaseDC(popup, hDC);
!
! res[0] = width + GetSystemMetrics(SM_CXVSCROLL);
! res[1] = 20;
! };
!
! int osGetPopUpSelection(WindowHandle popup)
! {
! return SendMessage(popup, CB_GETCURSEL, 0, 0);
! };
!
! void osSetPopUpSelection(WindowHandle popup, int index)
! {
! SendMessage(popup, CB_SETCURSEL, index, 0);
! handleControlCommand(popup);
! };
|