win.h
上传用户:wstnjxml
上传日期:2014-04-03
资源大小:7248k
文件大小:3k
源码类别:

Windows CE

开发平台:

C/C++

  1. /*****************************************************************************
  2.  *
  3.  * This program is free software ; you can redistribute it and/or modify
  4.  * it under the terms of the GNU General Public License as published by
  5.  * the Free Software Foundation; either version 2 of the License, or
  6.  * (at your option) any later version.
  7.  *
  8.  * This program is distributed in the hope that it will be useful,
  9.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11.  * GNU General Public License for more details.
  12.  *
  13.  * You should have received a copy of the GNU General Public License
  14.  * along with this program; if not, write to the Free Software
  15.  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
  16.  *
  17.  * $Id: win.h 271 2005-08-09 08:31:35Z picard $
  18.  *
  19.  * The Core Pocket Media Player
  20.  * Copyright (c) 2004-2005 Gabor Kovacs
  21.  *
  22.  ****************************************************************************/
  23. #ifndef __WIN_H
  24. #define __WIN_H
  25. #define WIN_CLASS FOURCC('W','I','N','_')
  26. #define WIN_ICON 1000
  27. #define INTERFACE_ID FOURCC('I','N','T','F')
  28. #define PROPSIZE 11
  29. #define LABEL_BOLD 1
  30. #define LABEL_CENTER 2
  31. #define MENU_SMALL 0x0100
  32. #define MENU_GRAYED 0x0200
  33. #define MENU_NOTSMALL 0x0400
  34. #define MENU_ADV 0x0800
  35. #define WIN_DIALOG 0x0001
  36. #define WIN_2BUTTON 0x0002
  37. #define WIN_NOMENU 0x0004
  38. #define WIN_BOTTOMTOOLBAR 0x0008
  39. #define WIN_NOTABSTOP 0x0010
  40. #define WIN_PROP_SOFTRESET 0x10000
  41. #define WIN_PROP_RESTART 0x20000
  42. #define WIN_PROP_RESYNC 0x40000
  43. #define WIN_PROP_CHANGED 0x80000
  44. typedef struct menudef
  45. {
  46. int Level;
  47. int Class;
  48. int Id;
  49. int Flags;
  50. } menudef;
  51. #define MENUDEF_END { -1 }
  52. typedef int winunit;
  53. typedef struct win win;
  54. typedef struct wincontrol wincontrol;
  55. typedef int (*winpopup)(win*,win* Parent);
  56. typedef int (*wincommand)(win*,int Command);
  57. #if defined(TARGET_PALMOS)
  58. #include "palmos/win_palmos.h"
  59. #elif defined(TARGET_WINCE) || defined(TARGET_WIN32)
  60. #include "win32/win_win32.h"
  61. #else
  62. #error Not supported platform
  63. #endif
  64. struct win
  65. {
  66. node Node;
  67. nodefunc Init;
  68. nodefunc Done;
  69. wincommand Command;
  70. winhandler Handler;
  71. winpopup Popup;
  72. int Flags;
  73. winunit WinWidth;
  74. winunit WinHeight;
  75. winunit LabelWidth; // for prop dialog
  76. const menudef* MenuDef;
  77. int Result;
  78. win* Parent;
  79. win* Child;
  80. wincontrol* Focus;
  81. wincontrol* Controls;
  82. winunit ScreenWidth;
  83. WINPRIVATE
  84. };
  85. void Win_Init();
  86. void Win_Done();
  87. int WinPopupClass(int Class,win* Parent);
  88. wincontrol* WinPropLabel(win*, winunit* Top, const tchar_t* LockedMsg, const tchar_t* Value);
  89. wincontrol* WinPropValue(win*, winunit* Top, node* Node, int No);
  90. wincontrol* WinPropNative(win*, node* Node, int No);
  91. void WinPropFocus(win*, node* Node, int No, bool_t SetFocus);
  92. void WinPropUpdate(win*, node* Node, int No);
  93. wincontrol* WinLabel(win*,winunit* Top,winunit Left,winunit Width,const tchar_t* LockedMsg,int FontSize,int Flags,wincontrol* Ref);
  94. void WinMenuInsert(win*,int No,int PrevId,int Id,const tchar_t* LockedMsg);
  95. int WinMenuFind(win*,int Id);
  96. bool_t WinMenuDelete(win*,int No,int Id);
  97. bool_t WinMenuCheck(win*,int No,int Id,bool_t);
  98. bool_t WinMenuEnable(win*,int No,int Id,bool_t);
  99. void WinBeginUpdate(win*);
  100. void WinEndUpdate(win*);
  101. void WinTitle(win*,const tchar_t* LockedMsg);
  102. int WinClose(win*);
  103. #endif