129 lines
3.4 KiB
C
Executable File
129 lines
3.4 KiB
C
Executable File
/*****************************************************************************
|
|
*
|
|
* This program is free software ; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*
|
|
* $Id: win.h 271 2005-08-09 08:31:35Z picard $
|
|
*
|
|
* The Core Pocket Media Player
|
|
* Copyright (c) 2004-2005 Gabor Kovacs
|
|
*
|
|
****************************************************************************/
|
|
|
|
#ifndef __WIN_H
|
|
#define __WIN_H
|
|
|
|
#define WIN_CLASS FOURCC('W','I','N','_')
|
|
#define WIN_ICON 1000
|
|
|
|
#define INTERFACE_ID FOURCC('I','N','T','F')
|
|
|
|
#define PROPSIZE 11
|
|
|
|
#define LABEL_BOLD 1
|
|
#define LABEL_CENTER 2
|
|
|
|
#define MENU_SMALL 0x0100
|
|
#define MENU_GRAYED 0x0200
|
|
#define MENU_NOTSMALL 0x0400
|
|
#define MENU_ADV 0x0800
|
|
|
|
#define WIN_DIALOG 0x0001
|
|
#define WIN_2BUTTON 0x0002
|
|
#define WIN_NOMENU 0x0004
|
|
#define WIN_BOTTOMTOOLBAR 0x0008
|
|
#define WIN_NOTABSTOP 0x0010
|
|
|
|
#define WIN_PROP_SOFTRESET 0x10000
|
|
#define WIN_PROP_RESTART 0x20000
|
|
#define WIN_PROP_RESYNC 0x40000
|
|
#define WIN_PROP_CHANGED 0x80000
|
|
|
|
typedef struct menudef
|
|
{
|
|
int Level;
|
|
int Class;
|
|
int Id;
|
|
int Flags;
|
|
|
|
} menudef;
|
|
|
|
#define MENUDEF_END { -1 }
|
|
|
|
typedef int winunit;
|
|
typedef struct win win;
|
|
typedef struct wincontrol wincontrol;
|
|
typedef int (*winpopup)(win*,win* Parent);
|
|
typedef int (*wincommand)(win*,int Command);
|
|
|
|
#if defined(TARGET_PALMOS)
|
|
#include "palmos/win_palmos.h"
|
|
#elif defined(TARGET_WINCE) || defined(TARGET_WIN32)
|
|
#include "win32/win_win32.h"
|
|
#else
|
|
#error Not supported platform
|
|
#endif
|
|
|
|
struct win
|
|
{
|
|
node Node;
|
|
nodefunc Init;
|
|
nodefunc Done;
|
|
wincommand Command;
|
|
winhandler Handler;
|
|
winpopup Popup;
|
|
|
|
int Flags;
|
|
winunit WinWidth;
|
|
winunit WinHeight;
|
|
winunit LabelWidth; // for prop dialog
|
|
const menudef* MenuDef;
|
|
int Result;
|
|
win* Parent;
|
|
win* Child;
|
|
wincontrol* Focus;
|
|
wincontrol* Controls;
|
|
winunit ScreenWidth;
|
|
|
|
WINPRIVATE
|
|
};
|
|
|
|
void Win_Init();
|
|
void Win_Done();
|
|
|
|
int WinPopupClass(int Class,win* Parent);
|
|
|
|
wincontrol* WinPropLabel(win*, winunit* Top, const tchar_t* LockedMsg, const tchar_t* Value);
|
|
wincontrol* WinPropValue(win*, winunit* Top, node* Node, int No);
|
|
wincontrol* WinPropNative(win*, node* Node, int No);
|
|
|
|
void WinPropFocus(win*, node* Node, int No, bool_t SetFocus);
|
|
void WinPropUpdate(win*, node* Node, int No);
|
|
|
|
wincontrol* WinLabel(win*,winunit* Top,winunit Left,winunit Width,const tchar_t* LockedMsg,int FontSize,int Flags,wincontrol* Ref);
|
|
|
|
void WinMenuInsert(win*,int No,int PrevId,int Id,const tchar_t* LockedMsg);
|
|
int WinMenuFind(win*,int Id);
|
|
bool_t WinMenuDelete(win*,int No,int Id);
|
|
bool_t WinMenuCheck(win*,int No,int Id,bool_t);
|
|
bool_t WinMenuEnable(win*,int No,int Id,bool_t);
|
|
|
|
void WinBeginUpdate(win*);
|
|
void WinEndUpdate(win*);
|
|
|
|
void WinTitle(win*,const tchar_t* LockedMsg);
|
|
int WinClose(win*);
|
|
|
|
#endif
|