diff dwtest.c @ 191:634625c3239d

Fixes for dw_color_xxxx_set() to accept OS/2 style colors, and fixed a problem with dw_window_set_font() on notebook controls.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Fri, 17 Jan 2003 20:31:06 +0000
parents
children d946e329670c
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dwtest.c	Fri Jan 17 20:31:06 2003 +0000
@@ -0,0 +1,230 @@
+#define INCL_DOS
+#define INCL_WIN
+
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include "dw.h"
+
+
+unsigned long flStyle = DW_FCF_SYSMENU | DW_FCF_TITLEBAR |
+   DW_FCF_SHELLPOSITION | DW_FCF_TASKLIST | DW_FCF_DLGBORDER;
+
+HWND mainwindow,
+     entryfield,
+    okbutton,
+    cancelbutton,
+    lbbox,
+    notebookbox,
+    notebookbox1,
+    notebookbox2,
+    notebook,
+    stext,
+    pagebox,
+    textbox1, textbox2,
+    buttonbox;
+
+int exit_callback(HWND window, void *data)
+{
+   dw_window_destroy((HWND)data);
+   exit(0);
+   return -1;
+}
+
+int test_callback(HWND window, void *data)
+{
+   dw_window_destroy((HWND)data);
+   exit(0);
+   return -1;
+}
+int browse_callback(HWND window, void *data)
+{
+   dw_file_browse("test string", NULL, "c", DW_FILE_OPEN );
+   return 0;
+}
+
+void archive_add(void)
+{
+   HWND browsebutton, browsebox;
+
+   lbbox = dw_box_new(BOXVERT, 10);
+
+   dw_box_pack_start(notebookbox1, lbbox, 150, 70, TRUE, TRUE, 0);
+
+    /* Archive Name */
+   stext = dw_text_new("Archive Name", 0);
+
+   dw_window_set_style(stext, DW_DT_VCENTER, DW_DT_VCENTER);
+
+   dw_box_pack_start(lbbox, stext, 130, 15, TRUE, TRUE, 2);
+
+   browsebox = dw_box_new(BOXHORZ, 0);
+
+   dw_box_pack_start(lbbox, browsebox, 130, 15, TRUE, TRUE, 0);
+
+   entryfield = dw_entryfield_new("", 100L);
+
+   dw_box_pack_start(browsebox, entryfield, 100, 15, TRUE, TRUE, 4);
+
+   browsebutton = dw_button_new("Browse", 1001L);
+
+   dw_box_pack_start(browsebox, browsebutton, 30, 15, TRUE, TRUE, 0);
+
+   dw_window_set_color(browsebox, DW_CLR_PALEGRAY, DW_CLR_PALEGRAY);
+   dw_window_set_font(browsebutton, "9.WarpSans");
+   dw_window_set_font(stext, "9.WarpSans");
+   dw_window_set_color(stext, DW_CLR_BLACK, DW_CLR_PALEGRAY);
+   dw_window_set_font(entryfield, "9.WarpSans");
+
+    /* Archive Description */
+   stext = dw_text_new("Archive Description", 0);
+
+   dw_window_set_style(stext, DW_DT_VCENTER, DW_DT_VCENTER);
+
+   dw_box_pack_start(lbbox, stext, 130, 15, TRUE, TRUE, 4);
+
+   entryfield = dw_entryfield_new("", 100L);
+
+   dw_box_pack_start(lbbox, entryfield, 130, 15, TRUE, TRUE, 4);
+
+   dw_window_set_font(stext, "9.WarpSans");
+   dw_window_set_color(stext, DW_CLR_BLACK, DW_CLR_PALEGRAY);
+   dw_window_set_font(entryfield, "9.WarpSans");
+
+    /* Comments */
+   stext = dw_text_new("Comments", 0);
+
+   dw_window_set_style(stext, DW_DT_VCENTER, DW_DT_VCENTER);
+
+   dw_box_pack_start(lbbox, stext, 130, 15, TRUE, TRUE, 4);
+
+   entryfield = dw_entryfield_new("", 100L);
+
+   dw_box_pack_start(lbbox, entryfield, 130, 15, TRUE, TRUE, 4);
+
+   dw_window_set_font(stext, "9.WarpSans");
+   dw_window_set_color(stext, DW_CLR_BLACK, DW_CLR_PALEGRAY);
+   dw_window_set_font(entryfield, "9.WarpSans");
+
+    /* Buttons */
+   buttonbox = dw_box_new(BOXHORZ, 10);
+
+   dw_box_pack_start(lbbox, buttonbox, 140, 210, TRUE, TRUE, 0);
+
+   okbutton = dw_button_new("Ok", 1001L);
+
+   dw_box_pack_start(buttonbox, okbutton, 130, 30, TRUE, TRUE, 2);
+
+   cancelbutton = dw_button_new("Cancel", 1002L);
+
+   dw_box_pack_start(buttonbox, cancelbutton, 130, 30, TRUE, TRUE, 2);
+
+   /* Set some nice fonts and colors */
+   dw_window_set_color(lbbox, DW_CLR_DARKCYAN, DW_CLR_PALEGRAY);
+   dw_window_set_color(buttonbox, DW_CLR_DARKCYAN, DW_CLR_PALEGRAY);
+   dw_window_set_color(okbutton, DW_CLR_PALEGRAY, DW_CLR_DARKCYAN);
+   dw_window_set_font(okbutton, "9.WarpSans");
+   dw_window_set_font(cancelbutton, "9.WarpSans");
+
+   dw_signal_connect(browsebutton, "clicked", DW_SIGNAL_FUNC(browse_callback), (void *)notebookbox1);
+   dw_signal_connect(okbutton, "clicked", DW_SIGNAL_FUNC(test_callback), (void *)notebookbox1);
+   dw_signal_connect(cancelbutton, "clicked", DW_SIGNAL_FUNC(test_callback), (void *)notebookbox1);
+}
+
+
+int font_width = 9;
+int font_height=6;
+int rows=100,width1=6,width2=50;
+
+/* This gets called when a part of the graph needs to be repainted. */
+int text_expose(HWND hwnd, DWExpose *exp, void *data)
+{
+   HPIXMAP hpm = (HPIXMAP)data;
+
+   dw_pixmap_bitblt(hwnd, NULL, 0, 0, font_width*width1, font_height*rows, NULL, hpm, 0, 0 );
+}
+
+void text_add(void)
+{
+   int i,x,y;
+   char buf[10];
+   HPIXMAP text1pm,text2pm;
+
+   pagebox = dw_box_new(BOXVERT, 5);
+   dw_box_pack_start( notebookbox2, pagebox, 1, 1, TRUE, TRUE, 0);
+
+   textbox1 = dw_render_new( 100 );
+   dw_box_pack_start( pagebox, textbox1, font_width*width1, font_height*rows, FALSE, TRUE, 4);
+   dw_window_set_font(textbox1, "9.WarpSans");
+
+   textbox2 = dw_render_new( 101 );
+   dw_box_pack_start( pagebox, textbox2, font_width*width2, font_height*rows, TRUE, TRUE, 4);
+   dw_window_set_font(textbox2, "9.WarpSans");
+
+   text1pm = dw_pixmap_new( textbox1, font_width*width1, font_height*rows, 32 );
+   text2pm = dw_pixmap_new( textbox2, font_width*width2, font_height*rows, 32 );
+
+   dw_color_foreground_set(DW_CLR_WHITE);
+   dw_draw_rect(0, text1pm, TRUE, 0, 0, font_width*width1, font_height*rows);
+   dw_draw_rect(0, text2pm, TRUE, 0, 0, font_width*width2, font_height*rows);
+
+   dw_window_set_font(textbox1, "9.WarpSans");
+   dw_font_text_extents( NULL, text1pm, "O", &font_width, &font_height );
+   dw_messagebox("DWTest", "Width: %d Height: %d\n", font_width, font_height);
+
+   dw_color_background_set( DW_CLR_WHITE );
+   for ( i = 0;i < 100; i++)
+   {
+      y = i*font_height;
+
+      dw_color_foreground_set( DW_CLR_BLACK );
+      sprintf( buf, "%6.6d", i );
+      dw_draw_text( NULL, text1pm, 0, y, buf);
+      dw_draw_text( NULL, text2pm, 0, y, buf);
+   }
+   dw_signal_connect(textbox1, "expose_event", DW_SIGNAL_FUNC(text_expose), text1pm);
+   dw_signal_connect(textbox2, "expose_event", DW_SIGNAL_FUNC(text_expose), text2pm);
+   dw_flush();
+}
+
+/*
+ * Let's demonstrate the functionality of this library. :)
+ */
+int main(int argc, char *argv[])
+{
+    ULONG notebookpage1;
+	ULONG notebookpage2;
+
+   dw_init(TRUE, argc, argv);
+
+   mainwindow = dw_window_new( HWND_DESKTOP, "dwindows test", flStyle | DW_FCF_SIZEBORDER | DW_FCF_MINMAX );
+
+   notebookbox = dw_box_new( BOXVERT, 5 );
+   dw_box_pack_start( mainwindow, notebookbox, 1, 1, TRUE, TRUE, 0);
+
+   notebook = dw_notebook_new( 1, TRUE );
+   dw_box_pack_start( notebookbox, notebook, 100, 100, TRUE, TRUE, 0);
+   dw_window_set_font( notebook, "8.WarpSans");
+
+   notebookbox1 = dw_box_new( BOXVERT, 5 );
+   notebookpage1 = dw_notebook_page_new( notebook, 0, TRUE );
+   dw_notebook_pack( notebook, notebookpage1, notebookbox1 );
+   fprintf( stderr, "page1: %d\n", notebookpage1 );
+   dw_notebook_page_set_text( notebook, notebookpage1, "first page");
+   archive_add();
+
+   notebookbox2 = dw_box_new( BOXVERT, 5 );
+   notebookpage2 = dw_notebook_page_new( notebook, 1, FALSE );
+   dw_notebook_pack( notebook, notebookpage2, notebookbox2 );
+   fprintf( stderr, "page2: %d\n",notebookpage2);
+   dw_notebook_page_set_text( notebook, notebookpage2, "second page");
+   text_add();
+
+   dw_signal_connect(mainwindow, "delete_event", DW_SIGNAL_FUNC(exit_callback), (void *)mainwindow);
+   dw_window_set_usize(mainwindow, 640, 480);
+   dw_window_show(mainwindow);
+
+   dw_main();
+
+   return 0;
+}