Exemplo n.º 1
0
void
skbdwin_create(void)
{
	GtkWidget *main_widget;
	GtkWidget *da;
	int width, height;

	if (skwin.window)
		return;

	if (softkbd_getsize(&width, &height) != SUCCESS)
		return;

	skwin.window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
	gtk_window_set_title(GTK_WINDOW(skwin.window), "Software Keyboard");
	gtk_window_set_resizable(GTK_WINDOW(skwin.window), FALSE);
	gtk_widget_add_events(skwin.window, EVENT_MASK);
	g_signal_connect(GTK_OBJECT(skwin.window), "destroy",
	    GTK_SIGNAL_FUNC(skbdwin_window_destroy), NULL);
	gtk_widget_realize(skwin.window);

	main_widget = gtk_vbox_new(FALSE, 2);
	gtk_widget_show(main_widget);
	gtk_container_add(GTK_CONTAINER(skwin.window), main_widget);

	skwin.hdl = drawmng_create(skwin.window, width, height);
	if (skwin.hdl == NULL) {
		goto destroy;
	}

	da = GTK_WIDGET(drawmng_get_widget_handle(skwin.hdl));
	gtk_box_pack_start(GTK_BOX(main_widget), da, FALSE, TRUE, 0);
	gtk_widget_show(da);

	g_signal_connect(GTK_OBJECT(skwin.window), "key_press_event",
	    GTK_SIGNAL_FUNC(skbdwin_key_press), NULL);
	g_signal_connect(GTK_OBJECT(skwin.window), "key_release_event",
	    GTK_SIGNAL_FUNC(skbdwin_key_release), NULL);
	g_signal_connect(GTK_OBJECT(skwin.window), "button_press_event",
	    GTK_SIGNAL_FUNC(skbdwin_button_press), NULL);
	g_signal_connect(GTK_OBJECT(skwin.window), "button_release_event",
	    GTK_SIGNAL_FUNC(skbdwin_button_release), NULL);

	g_signal_connect(GTK_OBJECT(da), "expose_event",
	    GTK_SIGNAL_FUNC(skbdwin_expose), NULL);

	gtk_widget_show_all(skwin.window);

	drawmng_set_size(skwin.hdl, width, height);
	drawmng_invalidate(skwin.hdl, NULL);
	return;

destroy:
	gtk_widget_destroy(skwin.window);
	skwin.window = NULL;
}
Exemplo n.º 2
0
void skbdwin_create(HINSTANCE hInstance) {

	TCHAR	szCaption[128];
	HWND	hwnd;

	if (skbdwin.hwnd != NULL) {
		return;
	}
	ZeroMemory(&skbdwin, sizeof(skbdwin));
	if (softkbd_getsize(&skbdwin.width, &skbdwin.height) != SUCCESS) {
		return;
	}

	loadstringresource(LOWORD(IDS_CAPTION_SOFTKEY),
										szCaption, NELEMENTS(szCaption));
	hwnd = CreateWindow(skbdclass, szCaption,
						WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION |
						WS_MINIMIZEBOX,
						skbdcfg.posx, skbdcfg.posy,
						skbdwin.width, skbdwin.height,
						NULL, NULL, hInstance, NULL);
	skbdwin.hwnd = hwnd;
	if (hwnd == NULL) {
		goto skcre_err1;
	}
	ShowWindow(hwnd, SW_SHOWNOACTIVATE);
	UpdateWindow(hwnd);
	skbdwin.dd2hdl = dd2_create(hwnd, skbdwin.width, skbdwin.height);
	if (skbdwin.dd2hdl == NULL) {
		goto skcre_err2;
	}
	InvalidateRect(hwnd, NULL, TRUE);
	SetForegroundWindow(g_hWndMain);
	return;

skcre_err2:
	DestroyWindow(hwnd);

skcre_err1:
	return;
}
Exemplo n.º 3
0
void skbdwin_create(void) {

	HWND	hwnd;

	if (skbdwin.hwnd != NULL) {
		return;
	}
	ZeroMemory(&skbdwin, sizeof(skbdwin));
	if (softkbd_getsize(&skbdwin.width, &skbdwin.height) != SUCCESS) {
		return;
	}
	hwnd = CreateWindow(skbdclass, skbdtitle,
						WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION |
						WS_MINIMIZEBOX,
						skbdcfg.posx, skbdcfg.posy,
						skbdwin.width, skbdwin.height,
						NULL, NULL, hInst, NULL);
	skbdwin.hwnd = hwnd;
	if (hwnd == NULL) {
		goto skcre_err1;
	}
	ShowWindow(hwnd, SW_SHOWNOACTIVATE);
	UpdateWindow(hwnd);
	skbdwin.dd2hdl = dd2_create(hwnd, skbdwin.width, skbdwin.height);
	if (skbdwin.dd2hdl == NULL) {
		goto skcre_err2;
	}
	InvalidateRect(hwnd, NULL, TRUE);
	SetForegroundWindow(hWndMain);
	return;

skcre_err2:
	DestroyWindow(hwnd);

skcre_err1:
	return;
}