diff options
author | Andras Timar <atimar@suse.com> | 2011-12-04 14:50:37 +0100 |
---|---|---|
committer | Andras Timar <atimar@suse.com> | 2011-12-04 14:50:37 +0100 |
commit | 6411ad12f2dac9525f720662692cf712801f8c5b (patch) | |
tree | 9bf7890dc15d631fbe79a35f863bde333145c620 /desktop/win32 | |
parent | 3ac61e97198354439ceac8969277585cb8d4cb18 (diff) |
code cleanup of Windows quickstarter
Diffstat (limited to 'desktop/win32')
-rw-r--r-- | desktop/win32/source/QuickStart/QuickStart.cxx | 353 | ||||
-rw-r--r-- | desktop/win32/source/QuickStart/QuickStart.rc | 127 | ||||
-rw-r--r-- | desktop/win32/source/QuickStart/resource.h | 32 |
3 files changed, 1 insertions, 511 deletions
diff --git a/desktop/win32/source/QuickStart/QuickStart.cxx b/desktop/win32/source/QuickStart/QuickStart.cxx index 26276ba71ee4..b3e19a555a05 100644 --- a/desktop/win32/source/QuickStart/QuickStart.cxx +++ b/desktop/win32/source/QuickStart/QuickStart.cxx @@ -7,37 +7,10 @@ #include <systools/win32/uwinapi.h> #include <stdio.h> -#define MY_TASKBAR_NOTIFICATION WM_USER+1 - -#define MAX_LOADSTRING 100 - // message used to communicate with soffice -#define TERMINATIONVETO_MESSAGE "SO TerminationVeto" -#define TERMINATE_MESSAGE "SO Terminate" #define LISTENER_WINDOWCLASS "SO Listener Class" #define KILLTRAY_MESSAGE "SO KillTray" -static UINT aTerminationVetoMessage = 0x7FFF; -static UINT aTerminateMessage = 0x7FFF; -static HMENU popupMenu = NULL; -static bool bTerminateVeto = true; - -#define UPDATE_TIMER 1 - -// Global Variables: -HINSTANCE hInst; // current instance -TCHAR szTitle[MAX_LOADSTRING]; // The title bar text -TCHAR szWindowClass[MAX_LOADSTRING]; // The title bar text - -TCHAR szExitString[MAX_LOADSTRING]; -TCHAR szTooltipString[MAX_LOADSTRING]; - -// Foward declarations of functions included in this code module: -ATOM MyRegisterClass(HINSTANCE hInstance); -BOOL InitInstance(HINSTANCE, int); -LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); -LRESULT CALLBACK About(HWND, UINT, WPARAM, LPARAM); - bool SofficeRuns() { // check for soffice by searching the communication window @@ -66,58 +39,13 @@ bool launchSoffice( ) UINT ret = WinExec( imagename, SW_SHOW ); if ( ret < 32 ) return false; -/* - // wait until we can communicate - int retry = 30; - while (retry-- && !SofficeRuns() ) - Sleep(1000); - return SofficeRuns(); - */ return true; } else return true; } -void NotifyListener( HWND hWnd ) -{ - static HICON hIconActive=NULL; - //static HICON hIconInActive=NULL; - - if( !hIconActive ) - { - hIconActive = (HICON)LoadImage( GetModuleHandle( NULL ), MAKEINTRESOURCE( ICON_ACTIVE ), - IMAGE_ICON, GetSystemMetrics( SM_CXSMICON ), GetSystemMetrics( SM_CYSMICON ), - LR_DEFAULTCOLOR | LR_SHARED ); - -/* hIconInActive = (HICON)LoadImage( GetModuleHandle( NULL ), MAKEINTRESOURCE( ICON_INACTIVE ), - IMAGE_ICON, GetSystemMetrics( SM_CXSMICON ), GetSystemMetrics( SM_CYSMICON ), - LR_DEFAULTCOLOR | LR_SHARED ); - */ - } - - NOTIFYICONDATA nid; - nid.cbSize = sizeof(NOTIFYICONDATA); - nid.hWnd = hWnd; - nid.uID = IDM_QUICKSTART; - nid.szTip[SAL_N_ELEMENTS(nid.szTip) - 1] = 0; -// nid.hIcon = bTerminateVeto ? hIconActive : hIconInActive; -// strncpy(nid.szTip, bTerminateVeto ? STRING_QUICKSTARTACTIVE : STRING_QUICKSTARTINACTIVE, SAL_N_ELEMENTS(nid.szTip) - 1 ); - nid.hIcon = hIconActive; - strncpy(nid.szTip, szTooltipString, SAL_N_ELEMENTS(nid.szTip) - 1); - nid.uFlags = NIF_TIP|NIF_ICON; - - // update systray - Shell_NotifyIcon( NIM_MODIFY, &nid ); - //CheckMenuItem( popupMenu, IDM_QUICKSTART, bTerminateVeto ? MF_CHECKED : MF_UNCHECKED ); - - // notify listener - SendMessage( HWND_BROADCAST, aTerminationVetoMessage, (WORD) bTerminateVeto, 0L ); -} - - - int APIENTRY WinMain(HINSTANCE /*hInstance*/, HINSTANCE /*hPrevInstance*/, LPSTR /*lpCmdLine*/, @@ -143,287 +71,6 @@ int APIENTRY WinMain(HINSTANCE /*hInstance*/, launchSoffice(); return 0; - -#if 0 // Note unconditional "return 0" above. Do not remove this block of code - // unless you are sure it will never be needed even for reference. - - // TODO: Place code here. - MSG msg; - HACCEL hAccelTable; - aTerminationVetoMessage = RegisterWindowMessage( TERMINATIONVETO_MESSAGE ); - aTerminateMessage = RegisterWindowMessage( TERMINATE_MESSAGE ); - - // Initialize global strings - LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); - LoadString(hInstance, IDC_QUICKSTART, szWindowClass, MAX_LOADSTRING); - - LoadString(hInstance, IDS_EXIT, szExitString, MAX_LOADSTRING); - LoadString(hInstance, IDS_TOOLTIP, szTooltipString, MAX_LOADSTRING); - - MyRegisterClass(hInstance); - - // Perform application initialization: - if (!InitInstance (hInstance, nCmdShow)) - { - return FALSE; - } - - hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_QUICKSTART); - - // Main message loop: - while (GetMessage(&msg, NULL, 0, 0)) - { - if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) - { - TranslateMessage(&msg); - DispatchMessage(&msg); - } - } - - return msg.wParam; -#endif -} - - - -// -// FUNCTION: MyRegisterClass() -// -// PURPOSE: Registers the window class. -// -// COMMENTS: -// -// This function and its usage is only necessary if you want this code -// to be compatible with Win32 systems prior to the 'RegisterClassEx' -// function that was added to Windows 95. It is important to call this function -// so that the application will get 'well formed' small icons associated -// with it. -// -ATOM MyRegisterClass(HINSTANCE hInstance) -{ - WNDCLASSEX wcex; - - wcex.cbSize = sizeof(WNDCLASSEX); - - wcex.style = CS_HREDRAW | CS_VREDRAW; - wcex.lpfnWndProc = (WNDPROC)WndProc; - wcex.cbClsExtra = 0; - wcex.cbWndExtra = 0; - wcex.hInstance = hInstance; - wcex.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_QUICKSTART); - wcex.hCursor = LoadCursor(NULL, IDC_ARROW); - wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); - wcex.lpszMenuName = NULL; - wcex.lpszClassName = szWindowClass; - wcex.hIconSm = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL); - - return RegisterClassEx(&wcex); -} - -// -// FUNCTION: InitInstance(HANDLE, int) -// -// PURPOSE: Saves instance handle and creates main window -// -// COMMENTS: -// -// In this function, we save the instance handle in a global variable and -// create and display the main program window. -// -BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) -{ - HWND hWnd; - - hInst = hInstance; // Store instance handle in our global variable - - hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, - CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL); - - if (!hWnd) - { - return FALSE; - } - - nCmdShow = SW_HIDE; // hide main window, we only need the taskbar icon - ShowWindow(hWnd, nCmdShow); - UpdateWindow(hWnd); - - return TRUE; -} - -// -// FUNCTION: WndProc(HWND, unsigned, WORD, LONG) -// -// PURPOSE: Processes messages for the main window. -// -// WM_COMMAND - process the application menu -// WM_PAINT - Paint the main window -// WM_DESTROY - post a quit message and return -// -// -LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) -{ - switch (message) - { - case WM_CREATE: - { - // make sure soffice runs - if( !launchSoffice() ) - return -1; - - // create popup menu - popupMenu = CreatePopupMenu(); - static int count=0; - - // Add my items - MENUITEMINFO mi; - mi.cbSize = sizeof(MENUITEMINFO); - mi.fMask=MIIM_TYPE|MIIM_STATE|MIIM_ID; - mi.fType=MFT_STRING; - mi.fState=MFS_ENABLED|MFS_DEFAULT; - mi.wID = IDM_QUICKSTART; - mi.hSubMenu=NULL; - mi.hbmpChecked=NULL; - mi.hbmpUnchecked=NULL; - mi.dwItemData=NULL; - mi.dwTypeData = "QuickStart"; - mi.cch = strlen(mi.dwTypeData); -// InsertMenuItem(popupMenu, count++, TRUE, &mi); - - mi.cbSize = sizeof(MENUITEMINFO); - mi.fMask=MIIM_TYPE|MIIM_STATE|MIIM_ID; - mi.fType=MFT_STRING; - mi.fState=MFS_ENABLED; - mi.wID = IDM_ABOUT; - mi.hSubMenu=NULL; - mi.hbmpChecked=NULL; - mi.hbmpUnchecked=NULL; - mi.dwItemData=NULL; - mi.dwTypeData = "Info..."; - mi.cch = strlen(mi.dwTypeData); -// InsertMenuItem(popupMenu, count++, TRUE, &mi); - - mi.cbSize = sizeof(MENUITEMINFO); - mi.fMask=MIIM_TYPE; - mi.fType=MFT_SEPARATOR; - mi.hSubMenu=NULL; - mi.hbmpChecked=NULL; - mi.hbmpUnchecked=NULL; - mi.dwItemData=NULL; -// InsertMenuItem(popupMenu, count++, TRUE, &mi); - - mi.cbSize = sizeof(MENUITEMINFO); - mi.fMask=MIIM_TYPE|MIIM_STATE|MIIM_ID; - mi.fType=MFT_STRING; - mi.fState=MFS_ENABLED; - mi.wID = IDM_EXIT; - mi.hSubMenu=NULL; - mi.hbmpChecked=NULL; - mi.hbmpUnchecked=NULL; - mi.dwItemData=NULL; - mi.dwTypeData = szExitString; - mi.cch = strlen(mi.dwTypeData); - InsertMenuItem(popupMenu, count++, TRUE, &mi); - - // add taskbar icon - NOTIFYICONDATA nid; - nid.cbSize = sizeof(NOTIFYICONDATA); - nid.hWnd = hWnd; - nid.uID = IDM_QUICKSTART; - nid.uFlags = NIF_MESSAGE; - nid.uCallbackMessage=MY_TASKBAR_NOTIFICATION; - Shell_NotifyIcon(NIM_ADD, &nid); - - // and update state - NotifyListener( hWnd ); - - // check for soffice - SetTimer(hWnd, UPDATE_TIMER, 3000, NULL); - } - break; - - case MY_TASKBAR_NOTIFICATION: // message from taskbar - switch(lParam) - { -/* - case WM_LBUTTONDBLCLK: - bTerminateVeto = bTerminateVeto ? false : true; - NotifyListener( hWnd ); - break; - */ - - case WM_LBUTTONDOWN: - case WM_RBUTTONDOWN: - { - POINT pt; - GetCursorPos(&pt); - SetForegroundWindow( hWnd ); - int m = TrackPopupMenuEx(popupMenu, TPM_RETURNCMD|TPM_LEFTALIGN|TPM_RIGHTBUTTON, - pt.x, pt.y, hWnd, NULL); - // BUGFIX: See Q135788 (PRB: Menus for Notification Icons Don't Work Correctly) - PostMessage(hWnd, NULL, 0, 0); - switch(m) - { - case IDM_QUICKSTART: - bTerminateVeto = bTerminateVeto ? false : true; - NotifyListener( hWnd ); - break; - case IDM_ABOUT: - DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About); - break; - case IDM_EXIT: - DestroyWindow(hWnd); - break; - } - } - break; - } - break; - - case WM_TIMER: - if( wParam == UPDATE_TIMER ) - { - // update state - NotifyListener( hWnd ); - } - break; - - case WM_DESTROY: - // try to terminate office - SendMessage( HWND_BROADCAST, aTerminateMessage, 0, 0L ); - - // delete taskbar icon - NOTIFYICONDATA nid; - nid.cbSize=sizeof(NOTIFYICONDATA); - nid.hWnd = hWnd; - nid.uID = IDM_QUICKSTART; - Shell_NotifyIcon(NIM_DELETE, &nid); - - PostQuitMessage(0); - break; - default: - return DefWindowProc(hWnd, message, wParam, lParam); - } - return 0; -} - -// Mesage handler for about box. -LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM) -{ - switch (message) - { - case WM_INITDIALOG: - return TRUE; - - case WM_COMMAND: - if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) - { - EndDialog(hDlg, LOWORD(wParam)); - return TRUE; - } - break; - } - return FALSE; } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/desktop/win32/source/QuickStart/QuickStart.rc b/desktop/win32/source/QuickStart/QuickStart.rc index 2fdfa7d1357c..7c2819eda349 100644 --- a/desktop/win32/source/QuickStart/QuickStart.rc +++ b/desktop/win32/source/QuickStart/QuickStart.rc @@ -1,130 +1,3 @@ -//Microsoft Developer Studio generated resource script. -// #include "resource.h" -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#define APSTUDIO_HIDDEN_SYMBOLS -#include "windows.h" -#undef APSTUDIO_HIDDEN_SYMBOLS -#include "resource.h" - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// German (Germany) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU) -#ifdef _WIN32 -LANGUAGE LANG_GERMAN, SUBLANG_GERMAN -#pragma code_page(1252) -#endif //_WIN32 - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. ICON_ACTIVE ICON DISCARDABLE "icons/main_app.ico" -IDI_QUICKSTART ICON DISCARDABLE "icons/main_app.ico" -IDI_SMALL ICON DISCARDABLE "icons/main_app.ico" -ICON_INACTIVE ICON DISCARDABLE "icons/main_app.ico" - - -///////////////////////////////////////////////////////////////////////////// -// -// Accelerator -// - -IDC_QUICKSTART ACCELERATORS MOVEABLE PURE -BEGIN - "?", IDM_ABOUT, ASCII, ALT - "/", IDM_ABOUT, ASCII, ALT -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -IDD_ABOUTBOX DIALOG DISCARDABLE 22, 17, 230, 75 -STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU -CAPTION "About" -FONT 8, "System" -BEGIN - ICON IDI_QUICKSTART,IDC_MYICON,14,9,16,16 - LTEXT "QuickStart Version 1.0",IDC_STATIC,49,10,119,8, - SS_NOPREFIX - LTEXT "Copyright (C) 2001",IDC_STATIC,49,20,119,8 - DEFPUSHBUTTON "OK",IDOK,195,6,30,11,WS_GROUP -END - - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -2 TEXTINCLUDE DISCARDABLE -BEGIN - "#define APSTUDIO_HIDDEN_SYMBOLS\r\n" - "#include ""windows.h""\r\n" - "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n" - "#include ""resource.h""\r\n" - "\0" -END - -3 TEXTINCLUDE DISCARDABLE -BEGIN - "\r\n" - "\0" -END - -1 TEXTINCLUDE DISCARDABLE -BEGIN - "resource.h\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE DISCARDABLE -BEGIN - IDS_APP_TITLE "SoQuickStart" - IDC_QUICKSTART "QUICKSTART" - IDS_TOOLTIP "StarOffice 6.0 QuickStart" -END - -STRINGTABLE DISCARDABLE -BEGIN - IDS_EXIT "Exit" -END - -#endif // German (Germany) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/desktop/win32/source/QuickStart/resource.h b/desktop/win32/source/QuickStart/resource.h index dc4a70ab5193..3dfbabcd899d 100644 --- a/desktop/win32/source/QuickStart/resource.h +++ b/desktop/win32/source/QuickStart/resource.h @@ -1,35 +1,5 @@ /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -//{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated include file. -// Used by QUICKSTART.RC -// -#define IDR_MAINFRAME 128 -#define IDD_QUICKSTART_DIALOG 102 -#define IDD_ABOUTBOX 103 -#define IDS_APP_TITLE 103 -#define IDM_ABOUT 104 -#define IDM_EXIT 105 -#define IDS_HELLO 106 -#define IDI_QUICKSTART 107 -#define IDI_SMALL 108 -#define IDC_QUICKSTART 109 -#define IDM_QUICKSTART 110 -#define IDS_TOOLTIP 111 -#define IDS_EXIT 112 -#define ICON_ACTIVE 1 -#define ICON_INACTIVE 2 -#define IDC_MYICON 3 -#define IDC_STATIC -1 -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 129 -#define _APS_NEXT_COMMAND_VALUE 32771 -#define _APS_NEXT_CONTROL_VALUE 1000 -#define _APS_NEXT_SYMED_VALUE 113 -#endif -#endif +#define ICON_ACTIVE 1 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |