summaryrefslogtreecommitdiff
path: root/app/wlib/mswlib/mswmsg.c
diff options
context:
space:
mode:
Diffstat (limited to 'app/wlib/mswlib/mswmsg.c')
-rw-r--r--app/wlib/mswlib/mswmsg.c168
1 files changed, 64 insertions, 104 deletions
diff --git a/app/wlib/mswlib/mswmsg.c b/app/wlib/mswlib/mswmsg.c
index 6445299..154d89d 100644
--- a/app/wlib/mswlib/mswmsg.c
+++ b/app/wlib/mswlib/mswmsg.c
@@ -1,6 +1,5 @@
#include <windows.h>
#include <string.h>
-#include <malloc.h>
#include <stdlib.h>
#include <commdlg.h>
#include <math.h>
@@ -21,20 +20,15 @@
#define SCALE_LARGE 1.6
#define SCALE_SMALL 0.8
-#ifdef CONTROL3D
-static int messageHeight = 18;
-#endif
-
struct wMessage_t {
- WOBJ_COMMON
- long flags;
- const char * message;
- };
+ WOBJ_COMMON
+ long flags;
+ const char * message;
+};
-#ifndef CONTROL3D
static void repaintMessage(
- HWND hWnd,
- wControl_p b )
+ HWND hWnd,
+ wControl_p b )
{
wMessage_p bm = (wMessage_p)b;
HDC hDc;
@@ -46,33 +40,29 @@ static void repaintMessage(
hDc = GetDC( hWnd );
- if ( !mswThickFont )
- hFont = SelectObject( hDc, mswLabelFont );
+ hFont = SelectObject( hDc, mswLabelFont );
- switch( wMessageSetFont( ((wMessage_p)b)->flags ))
- {
- case BM_LARGE:
- scale = SCALE_LARGE;
- break;
- case BM_SMALL:
- scale = SCALE_SMALL;
- break;
+ switch( wMessageSetFont( ((wMessage_p)b)->flags )) {
+ case BM_LARGE:
+ scale = SCALE_LARGE;
+ break;
+ case BM_SMALL:
+ scale = SCALE_SMALL;
+ break;
}
- /* is a non-standard text height required? */
- if( scale != 1.0 )
- {
+ /* is a non-standard text height required? */
+ if( scale != 1.0 ) {
/* if yes, get information about the standard font used */
GetObject( GetStockObject( DEFAULT_GUI_FONT ), sizeof( LOGFONT ), &msgFont );
/* change the height */
- msgFont.lfHeight = (long)((double)msgFont.lfHeight * scale);
+ msgFont.lfHeight = (long)((double)msgFont.lfHeight * scale);
/* create and activate the new font */
hFont = SelectObject( hDc, CreateFontIndirect( &msgFont ) );
} else {
- if ( !mswThickFont )
- hFont = SelectObject( hDc, mswLabelFont );
+ hFont = SelectObject( hDc, mswLabelFont );
}
GetTextMetrics(hDc, &textMetrics);
@@ -83,137 +73,107 @@ static void repaintMessage(
rect.left = bm->x;
SetBkColor( hDc, GetSysColor( COLOR_BTNFACE ) );
- ExtTextOut( hDc, bm->x, bm->y + ((bm->h + 2 - textMetrics.tmHeight) / 2), ETO_CLIPPED|ETO_OPAQUE, &rect, bm->message, strlen( bm->message ), NULL );
+ ExtTextOut( hDc, bm->x, bm->y + ((bm->h + 2 - textMetrics.tmHeight) / 2),
+ ETO_CLIPPED|ETO_OPAQUE, &rect, bm->message, (int)(strlen( bm->message )),
+ NULL );
if( scale != 1.0 )
/* in case we did create a new font earlier, delete it now */
+ {
DeleteObject( SelectObject( hDc, GetStockObject( DEFAULT_GUI_FONT )));
- else
- if ( !mswThickFont )
- SelectObject( hDc, hFont );
+ } else {
+ SelectObject( hDc, hFont );
+ }
ReleaseDC( hWnd, hDc );
}
-#endif
void wMessageSetValue(
- wMessage_p b,
- const char * arg )
+ wMessage_p b,
+ const char * arg )
{
- if (b->message)
+ if (b->message) {
free( CAST_AWAY_CONST b->message );
- if (arg)
+ }
+ if (arg) {
b->message = mswStrdup( arg );
- else
+ } else {
b->message = NULL;
-#ifdef CONTROL3D
- SetWindowText( b->hWnd, arg );
-#else
+ }
+
repaintMessage( ((wControl_p)(b->parent))->hWnd, (wControl_p)b );
-#endif
+
}
void wMessageSetWidth(
- wMessage_p b,
- wPos_t width )
+ wMessage_p b,
+ wWinPix_t width )
{
b->w = width;
-#ifdef CONTROL3D
- SetWindowPos( b->hWnd, HWND_TOP, CW_USEDEFAULT, CW_USEDEFAULT,
- width, messageHeight, SWP_NOMOVE );
-#endif
+
}
-wPos_t wMessageGetWidth(const char *string)
+wWinPix_t wMessageGetWidth(const char *string)
{
return(wLabelWidth(string));
}
-wPos_t wMessageGetHeight( long flags )
+wWinPix_t wMessageGetHeight( long flags )
{
-#ifdef CONTROL3D
- return messageHeight;
-#else
double scale = 1.0;
- if( flags & BM_LARGE )
+ if( flags & BM_LARGE ) {
scale = SCALE_LARGE;
- if( flags & BM_SMALL )
+ }
+ if( flags & BM_SMALL ) {
scale = SCALE_SMALL;
+ }
+
+ return((wWinPix_t)((mswEditHeight) * scale ));
- return((wPos_t)((mswEditHeight) * scale ));
-#endif
}
static void mswMessageSetBusy(
- wControl_p b,
- BOOL_T busy )
+ wControl_p b,
+ BOOL_T busy )
{
}
-#ifndef CONTROL3D
-static callBacks_t messageCallBacks = {
- repaintMessage,
- NULL,
- NULL,
- mswMessageSetBusy };
-#endif
+static callBacks_t messageCallBacks = {
+ repaintMessage,
+ NULL,
+ NULL,
+ mswMessageSetBusy
+};
wMessage_p wMessageCreateEx(
- wWin_p parent,
- POS_T x,
- POS_T y,
- const char * helpStr,
- POS_T width,
- const char *message,
- long flags )
+ wWin_p parent,
+ wWinPix_t x,
+ wWinPix_t y,
+ const char * helpStr,
+ wWinPix_t width,
+ const char *message,
+ long flags )
{
wMessage_p b;
int index;
-
-#ifdef CONTROL3D
- RECT rect;
-#endif
-
+
+
b = (wMessage_p)mswAlloc( parent, B_MESSAGE, NULL, sizeof *b, NULL, &index );
mswComputePos( (wControl_p)b, x, y );
b->option |= BO_READONLY;
b->message = mswStrdup( message );
b->flags = flags;
-#ifdef CONTROL3D
- if ( width <= 0 && strlen(b->message) > 0 ) {
- width = wLabelWidth( b->message );
- }
-
- b->hWnd = CreateWindow( "STATIC", NULL,
- SS_LEFTNOWORDWRAP | WS_CHILD | WS_VISIBLE,
- b->x, b->y,
- width, messageHeight,
- ((wControl_p)parent)->hWnd, (HMENU)index, mswHInst, NULL );
- if (b->hWnd == NULL) {
- mswFail("CreateWindow(MESSAGE)");
- return b;
- }
-
- if ( !mswThickFont )
- SendMessage( b->hWnd, WM_SETFONT, (WPARAM)mswLabelFont, 0L );
- SetWindowText( b->hWnd, message );
-
- GetWindowRect( b->hWnd, &rect );
- b->w = rect.right - rect.left;
- b->h = rect.bottom - rect.top;
-#else
b->w = width;
b->h = wMessageGetHeight( flags ) + 1;
repaintMessage( ((wControl_p)parent)->hWnd, (wControl_p)b );
-#endif
+
mswAddButton( (wControl_p)b, FALSE, helpStr );
-#ifndef CONTROL3D
mswCallBacks[B_MESSAGE] = &messageCallBacks;
-#endif
+
return b;
}