📄 wdehints.c
字号:
/****************************************************************************
*
* Open Watcom Project
*
* Portions Copyright (c) 1983-2002 Sybase, Inc. All Rights Reserved.
*
* ========================================================================
*
* This file contains Original Code and/or Modifications of Original
* Code as defined in and that are subject to the Sybase Open Watcom
* Public License version 1.0 (the 'License'). You may not use this file
* except in compliance with the License. BY USING THIS FILE YOU AGREE TO
* ALL TERMS AND CONDITIONS OF THE LICENSE. A copy of the License is
* provided with the Original Code and Modifications, and is also
* available at www.sybase.com/developer/opensource.
*
* The Original Code and all software distributed under the License are
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
* EXPRESS OR IMPLIED, AND SYBASE AND ALL CONTRIBUTORS HEREBY DISCLAIM
* ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR
* NON-INFRINGEMENT. Please see the License for the specific language
* governing rights and limitations under the License.
*
* ========================================================================
*
* Description: WHEN YOU FIGURE OUT WHAT THIS FILE DOES, PLEASE
* DESCRIBE IT HERE!
*
****************************************************************************/
#include <windows.h>
#include <win1632.h>
#include <stdio.h>
#include <string.h>
#include "wdeglbl.h"
#include "wdemem.h"
#include "wdestat.h"
#include "wdemain.h"
#include "wde_rc.h"
#include "wdehints.h"
#include "wdemsgbx.h"
#include "wdemsgs.gh"
#include "list.def"
/****************************************************************************/
/* macro definitions */
/****************************************************************************/
#define MAX_NESTED_POPUPS 2
/****************************************************************************/
/* type definitions */
/****************************************************************************/
typedef struct {
int id;
DWORD hint;
} WdeHintItem;
typedef struct {
int loc[MAX_NESTED_POPUPS];
HMENU popup;
DWORD hint;
} WdePopupHintItem;
typedef struct {
int num;
HMENU menu;
WdePopupHintItem *hint_items;
} WdePopupListItem;
/****************************************************************************/
/* static function prototypes */
/****************************************************************************/
static WdeHintItem *WdeGetHintItem ( int id );
static void WdeHandlePopupHint ( HMENU, HMENU );
static DWORD WdeGetPopupHint ( WdePopupListItem *, HMENU );
static WdePopupListItem *WdeFindPopupListItem ( HMENU menu );
static Bool WdeCreateWdePopupListItem ( int, HMENU,
WdePopupHintItem * );
static Bool WdeInitHintItems ( int, HMENU,
WdePopupHintItem * );
/****************************************************************************/
/* static variables */
/****************************************************************************/
static LIST *WdePopupList = NULL;
static WdeHintItem WdeHints[] =
{
{ IDM_NEW_RES , WDE_HINT_NEW_RES }
, { IDM_OPEN_RES , WDE_HINT_OPEN_RES }
, { IDM_SAVE_RES , WDE_HINT_SAVE_RES }
, { IDM_SAVEAS_RES , WDE_HINT_SAVEAS_RES }
, { IDM_MS_CUSTOM , WDE_HINT_MS_CUSTOM }
, { IDM_BOR_CUSTOM , WDE_HINT_BOR_CUSTOM }
, { IDM_LOADLIB , WDE_HINT_LOADLIB }
, { IDM_SELCUST1 , WDE_HINT_SELCUST1 }
, { IDM_SELCUST2 , WDE_HINT_SELCUST2 }
, { IDM_LOAD_SYMBOLS , WDE_HINT_LOAD_SYMBOLS }
, { IDM_VIEW_SYMBOLS , WDE_HINT_VIEW_SYMBOLS }
, { IDM_WRITE_SYMBOLS , WDE_HINT_WRITE_SYMBOLS }
, { IDM_EXIT , WDE_HINT_EXIT }
, { IDM_SAME_WIDTH , WDE_HINT_SAME_WIDTH }
, { IDM_SAME_HEIGHT , WDE_HINT_SAME_HEIGHT }
, { IDM_SAME_SIZE , WDE_HINT_SAME_SIZE }
, { IDM_SIZETOTEXT , WDE_HINT_SIZETOTEXT }
, { IDM_GOTO_OBJECT , WDE_HINT_GOTO_OBJECT }
, { IDM_DEFINEOBJECT , WDE_HINT_DEFINEOBJECT }
, { IDM_GEN_DEFINEOBJECT , WDE_HINT_GEN_DEFINEOBJECT }
, { IDM_OPTIONS , WDE_HINT_OPTIONS }
, { IDM_SELECT_DIALOG , WDE_HINT_SELECT_DIALOG }
, { IDM_REMOVE_DIALOG , WDE_HINT_REMOVE_DIALOG }
, { IDM_DIALOG_RESTORE , WDE_HINT_DIALOG_RESTORE }
, { IDM_DIALOG_NEW , WDE_HINT_DIALOG_NEW }
, { IDM_DIALOG_SAVE , WDE_HINT_DIALOG_SAVE }
, { IDM_DIALOG_SAVEAS , WDE_HINT_DIALOG_SAVEAS }
, { IDM_DIALOG_SAVEINTO , WDE_HINT_DIALOG_SAVEINTO }
, { IDM_TEST_MODE , WDE_HINT_TEST_MODE }
, { IDM_SET_ORDER , WDE_HINT_SET_ORDER }
, { IDM_SET_TABS , WDE_HINT_SET_TABS }
, { IDM_SET_GROUPS , WDE_HINT_SET_GROUPS }
, { IDM_SELECT_MODE , WDE_HINT_SELECT_MODE }
, { IDM_DIALOG_TOOL , WDE_HINT_DIALOG_TOOL }
, { IDM_PBUTTON_TOOL , WDE_HINT_PBUTTON_TOOL }
, { IDM_CBUTTON_TOOL , WDE_HINT_CBUTTON_TOOL }
, { IDM_RBUTTON_TOOL , WDE_HINT_RBUTTON_TOOL }
, { IDM_GBUTTON_TOOL , WDE_HINT_GBUTTON_TOOL }
, { IDM_FRAME_TOOL , WDE_HINT_FRAME_TOOL }
, { IDM_TEXT_TOOL , WDE_HINT_TEXT_TOOL }
, { IDM_ICON_TOOL , WDE_HINT_ICON_TOOL }
, { IDM_EDIT_TOOL , WDE_HINT_EDIT_TOOL }
, { IDM_LISTBOX_TOOL , WDE_HINT_LISTBOX_TOOL }
, { IDM_COMBOBOX_TOOL , WDE_HINT_COMBOBOX_TOOL }
, { IDM_HSCROLL_TOOL , WDE_HINT_HSCROLL_TOOL }
, { IDM_VSCROLL_TOOL , WDE_HINT_VSCROLL_TOOL }
, { IDM_SIZEBOX_TOOL , WDE_HINT_SIZEBOX_TOOL }
, { IDM_STATUSBAR_TOOL , WDE_HINT_STATUSBAR_TOOL }
, { IDM_LISTVIEW_TOOL , WDE_HINT_LISTVIEW_TOOL }
, { IDM_TREEVIEW_TOOL , WDE_HINT_TREEVIEW_TOOL }
, { IDM_TABCNTL_TOOL , WDE_HINT_TABCNTL_TOOL }
, { IDM_ANIMATE_TOOL , WDE_HINT_ANIMATE_TOOL }
, { IDM_UPDOWN_TOOL , WDE_HINT_UPDOWN_TOOL }
, { IDM_TRACKBAR_TOOL , WDE_HINT_TRACKBAR_TOOL }
, { IDM_PROGRESS_TOOL , WDE_HINT_PROGRESS_TOOL }
, { IDM_HOTKEY_TOOL , WDE_HINT_HOTKEY_TOOL }
, { IDM_HEADER_TOOL , WDE_HINT_HEADER_TOOL }
, { IDM_CUSTOM1_TOOL , WDE_HINT_CUSTOM1_TOOL }
, { IDM_CUSTOM2_TOOL , WDE_HINT_CUSTOM2_TOOL }
, { IDM_STICKY_TOOLS , WDE_HINT_STICKY_TOOLS }
, { IDM_SHOW_TOOLS , WDE_HINT_SHOW_TOOLS }
, { IDM_SHOW_RIBBON , WDE_HINT_SHOW_RIBBON }
, { IDM_MDI_CASCADE , WDE_HINT_MDI_CASCADE }
, { IDM_MDI_TILEH , WDE_HINT_MDI_TILEH }
, { IDM_MDI_TILEV , WDE_HINT_MDI_TILEV }
, { IDM_MDI_ARRANGE , WDE_HINT_MDI_ARRANGE }
, { IDM_ABOUT , WDE_HINT_ABOUT }
, { IDM_HELP , WDE_HINT_HELP }
, { IDM_DELETEOBJECT , WDE_HINT_DELETEOBJECT }
, { IDM_CUTOBJECT , WDE_HINT_CUTOBJECT }
, { IDM_PASTEOBJECT , WDE_HINT_PASTEOBJECT }
, { IDM_COPYOBJECT , WDE_HINT_COPYOBJECT }
, { IDM_FMLEFT , WDE_HINT_FMLEFT }
, { IDM_FMHCENTRE , WDE_HINT_FMHCENTRE }
, { IDM_FMRIGHT , WDE_HINT_FMRIGHT }
, { IDM_FMTOP , WDE_HINT_FMTOP }
, { IDM_FMVCENTRE , WDE_HINT_FMVCENTRE }
, { IDM_FMBOTTOM , WDE_HINT_FMBOTTOM }
, { IDM_DDE_CLEAR , WDE_HINT_DDE_CLEAR }
, { IDM_DDE_UPDATE_PRJ , WDE_HINT_DDE_UPDATE_PRJ }
, { -1 , 0 }
};
static WdePopupHintItem WdeInitialPopupHints[] =
{
{ { 0, -1 }, NULL, WDE_HINT_FILEMENU }
, { { 0, 3 }, NULL, WDE_HINT_LOADCUSTMENU }
, { { 1, -1 }, NULL, WDE_HINT_WINDOWMENU }
, { { 2, -1 }, NULL, WDE_HINT_HELPMENU }
};
static WdePopupHintItem WdeResPopupHints[] =
{
{ { 0, -1 }, NULL, WDE_HINT_FILEMENU }
, { { 0, 5 }, NULL, WDE_HINT_LOADCUSTMENU }
, { { 1, -1 }, NULL, WDE_HINT_EDITMENU }
, { { 1, 5 }, NULL, WDE_HINT_ALIGNMENU }
, { { 1, 6 }, NULL, WDE_HINT_SIZEMENU }
, { { 1, 15 }, NULL, WDE_HINT_EDITSYMMENU }
, { { 2, -1 }, NULL, WDE_HINT_DIALOGMENU }
, { { 3, -1 }, NULL, WDE_HINT_CONTROLMENU }
, { { 3, 19 }, NULL, WDE_HINT_COMMCONTROLMENU }
, { { 4, -1 }, NULL, WDE_HINT_WINDOWMENU }
, { { 5, -1 }, NULL, WDE_HINT_HELPMENU }
};
static WdePopupHintItem WdeDDEPopupHints[] =
{
{ { 0, -1 }, NULL, WDE_HINT_DDEFILEMENU }
, { { 0, 5 }, NULL, WDE_HINT_LOADCUSTMENU }
, { { 1, -1 }, NULL, WDE_HINT_EDITMENU }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -