CTWM
Loading...
Searching...
No Matches
Macros | Functions | Variables
/usr/src/RPM/BUILD/ctwm-4.1.0/menus.c File Reference
#include "ctwm.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <strings.h>
#include "add_window.h"
#include "colormaps.h"
#include "drawing.h"
#include "events.h"
#include "functions.h"
#include "functions_defs.h"
#include "gram.tab.h"
#include "iconmgr.h"
#include "icons_builtin.h"
#include "icons.h"
#include "image.h"
#include "list.h"
#include "occupation.h"
#include "otp.h"
#include "screen.h"
#include "util.h"
#include "vscreen.h"
#include "win_iconify.h"
#include "win_resize.h"
#include "win_utils.h"
#include "workspace_manager.h"
Include dependency graph for menus.c:

Go to the source code of this file.

Macros

#define SHADOWWIDTH   5 /* in pixels */
 
#define ENTRY_SPACING   4
 
#define SETDEF(btn, ctx, func)   AddFuncButton(btn, ctx, 0, func, NULL, NULL)
 
#define UNUSED_PIXEL   ((unsigned long) (~0)) /* more than 24 bits */
 
#define MSLEN   (2 + 2 + 5 * 3 + 5 * 3)
 
#define DO(mask, str)
 
#define Over1Mask   (1<<30)
 
#define OverAllMask   (1<<31)
 

Functions

static void Paint3DEntry (MenuRoot *mr, MenuItem *mi, bool exposure)
 
static void PaintNormalEntry (MenuRoot *mr, MenuItem *mi, bool exposure)
 
static void DestroyMenu (MenuRoot *menu)
 
bool AddFuncKey (char *name, int cont, int nmods, int func, MenuRoot *menu, char *win_name, char *action)
 
void AddFuncButton (int num, int cont, int nmods, int func, MenuRoot *menu, MenuItem *item)
 
void AddDefaultFuncButtons (void)
 
void PaintEntry (MenuRoot *mr, MenuItem *mi, bool exposure)
 
void PaintMenu (MenuRoot *mr, XEvent *e)
 
void MakeWorkspacesMenu (void)
 
bool cur_fromMenu (void)
 
void UpdateMenu (void)
 
MenuRootNewMenuRoot (char *name)
 
MenuItemAddToMenu (MenuRoot *menu, char *item, char *action, MenuRoot *sub, int func, char *fore, char *back)
 
void MakeMenus (void)
 
void MakeMenu (MenuRoot *mr)
 
bool PopUpMenu (MenuRoot *menu, int x, int y, bool center)
 
void PopDownMenu (void)
 
void HideMenu (MenuRoot *menu)
 
MenuRootFindMenuRoot (char *name)
 
void MoveMenu (XEvent *eventp)
 
void WarpCursorToDefaultEntry (MenuRoot *menu)
 
charmk_twmkeys_entry (const FuncKey *key)
 Generate up a string representation of a keybinding->action.
 

Variables

MenuRootActiveMenu = NULL
 
MenuItemActiveItem = NULL
 
bool menuFromFrameOrWindowOrTitlebar = false
 
charCurrentSelectedWorkspace
 
int AlternateKeymap
 
bool AlternateContext
 
int MenuDepth = 0
 
struct { 
 
   int   x 
 
   int   y 
 
MenuOrigins [10/*max number of nested menus */] 
 
static bool addingdefaults = false
 
static bool fromMenu
 

Macro Definition Documentation

◆ DO

#define DO ( mask,
str )
Value:
do { \
if(key->mods & mask##Mask) { \
const int tslen = sizeof(str) - 1; \
fprintf(stderr, "BUG: No space to add '%s' " \
"in %s()\n", str, __func__); \
return NULL; \
} \
} \
} while(0)
static int PlaceX
Definition add_window.c:82
#define MSLEN

◆ ENTRY_SPACING

#define ENTRY_SPACING   4

Definition at line 82 of file menus.c.

Referenced by MakeMenu(), and Paint3DEntry().

◆ MSLEN

#define MSLEN   (2 + 2 + 5 * 3 + 5 * 3)

◆ Over1Mask

#define Over1Mask   (1<<30)

◆ OverAllMask

#define OverAllMask   (1<<31)

◆ SETDEF

#define SETDEF ( btn,
ctx,
func )   AddFuncButton(btn, ctx, 0, func, NULL, NULL)

◆ SHADOWWIDTH

#define SHADOWWIDTH   5 /* in pixels */

Definition at line 81 of file menus.c.

Referenced by PopUpMenu().

◆ UNUSED_PIXEL

#define UNUSED_PIXEL   ((unsigned long) (~0)) /* more than 24 bits */

Function Documentation

◆ AddDefaultFuncButtons()

void AddDefaultFuncButtons ( void )

Definition at line 223 of file menus.c.

References addingdefaults, C_ICON, C_ICONMGR, C_TITLE, PlaceX, and SETDEF.

Referenced by InitTitlebarButtons().

◆ AddFuncButton()

void AddFuncButton ( int num,
int cont,
int nmods,
int func,
MenuRoot * menu,
MenuItem * item )

Definition at line 171 of file menus.c.

References addingdefaults, cont, PlaceX, and Scr.

Referenced by GotButton().

◆ AddFuncKey()

bool AddFuncKey ( char * name,
int cont,
int nmods,
int func,
MenuRoot * menu,
char * win_name,
char * action )

Definition at line 102 of file menus.c.

References cont, dpy, PlaceX, and Scr.

Referenced by GotKey().

◆ AddToMenu()

MenuItem * AddToMenu ( MenuRoot * menu,
char * item,
char * action,
MenuRoot * sub,
int func,
char * fore,
char * back )

◆ cur_fromMenu()

bool cur_fromMenu ( void )

Definition at line 482 of file menus.c.

References fromMenu.

Referenced by f_resize_impl().

◆ DestroyMenu()

static void DestroyMenu ( MenuRoot * menu)
static

Definition at line 1517 of file menus.c.

References dpy, MenuRoot::first, MenuContext, MenuItem::next, PlaceX, Scr, ScreenContext, MenuRoot::shadow, and MenuRoot::w.

Referenced by PopUpMenu().

◆ FindMenuRoot()

MenuRoot * FindMenuRoot ( char * name)

Definition at line 1503 of file menus.c.

References PlaceX, and Scr.

Referenced by EF_main(), and GetRoot().

◆ HideMenu()

void HideMenu ( MenuRoot * menu)

Definition at line 1476 of file menus.c.

References dpy, MenuRoot::mapped, MRM_UNMAPPED, PlaceX, Scr, MenuRoot::shadow, and MenuRoot::w.

Referenced by HandleEnterNotify(), and PopDownMenu().

◆ MakeMenu()

void MakeMenu ( MenuRoot * mr)

◆ MakeMenus()

void MakeMenus ( void )

Definition at line 836 of file menus.c.

References MakeMenu(), MenuRoot::pinned, PlaceX, and Scr.

Referenced by ctwm_main().

◆ MakeWorkspacesMenu()

void MakeWorkspacesMenu ( void )

Definition at line 442 of file menus.c.

References AddToMenu(), MakeMenu(), WorkSpace::name, WorkSpace::next, PlaceX, and Scr.

Referenced by ctwm_main().

◆ mk_twmkeys_entry()

char * mk_twmkeys_entry ( const FuncKey * key)

Generate up a string representation of a keybinding->action.

Internally used in generating TwmKeys menu.

Definition at line 1657 of file menus.c.

References DO, MSLEN, and PlaceX.

Referenced by PopUpMenu().

◆ MoveMenu()

void MoveMenu ( XEvent * eventp)

◆ NewMenuRoot()

MenuRoot * NewMenuRoot ( char * name)

◆ Paint3DEntry()

static void Paint3DEntry ( MenuRoot * mr,
MenuItem * mi,
bool exposure )
static

Definition at line 256 of file menus.c.

References Create3DMenuIcon(), dpy, Draw3DBorder(), ENTRY_SPACING, FB, off, PlaceX, Scr, x, and y.

Referenced by PaintEntry().

◆ PaintEntry()

void PaintEntry ( MenuRoot * mr,
MenuItem * mi,
bool exposure )

Definition at line 242 of file menus.c.

References Paint3DEntry(), PaintNormalEntry(), PlaceX, and Scr.

Referenced by HandleEnterNotify(), HandleKeyPress(), PaintMenu(), PopDownMenu(), and UpdateMenu().

◆ PaintMenu()

void PaintMenu ( MenuRoot * mr,
XEvent * e )

Definition at line 419 of file menus.c.

References dpy, Draw3DBorder(), off, PaintEntry(), PlaceX, and Scr.

Referenced by HandleExpose().

◆ PaintNormalEntry()

static void PaintNormalEntry ( MenuRoot * mr,
MenuItem * mi,
bool exposure )
static

Definition at line 334 of file menus.c.

References CreateMenuIcon(), dpy, FB, PlaceX, Scr, x, and y.

Referenced by PaintEntry().

◆ PopDownMenu()

void PopDownMenu ( void )

◆ PopUpMenu()

bool PopUpMenu ( MenuRoot * menu,
int x,
int y,
bool center )

◆ UpdateMenu()

void UpdateMenu ( void )

◆ WarpCursorToDefaultEntry()

void WarpCursorToDefaultEntry ( MenuRoot * menu)

Variable Documentation

◆ ActiveItem

MenuItem* ActiveItem = NULL

◆ ActiveMenu

MenuRoot* ActiveMenu = NULL

◆ addingdefaults

bool addingdefaults = false
static

Definition at line 72 of file menus.c.

Referenced by AddDefaultFuncButtons(), and AddFuncButton().

◆ AlternateContext

bool AlternateContext

Definition at line 65 of file menus.c.

Referenced by f_altcontext_impl(), HandleButtonPress(), HandleButtonRelease(), and HandleKeyPress().

◆ AlternateKeymap

int AlternateKeymap

Definition at line 64 of file menus.c.

Referenced by f_altkeymap_impl(), HandleButtonPress(), HandleButtonRelease(), and HandleKeyPress().

◆ CurrentSelectedWorkspace

char* CurrentSelectedWorkspace

Definition at line 61 of file menus.c.

Referenced by HandleKeyPress(), PopUpMenu(), and UpdateMenu().

◆ fromMenu

bool fromMenu
static

Definition at line 480 of file menus.c.

Referenced by cur_fromMenu(), and UpdateMenu().

◆ MenuDepth

int MenuDepth = 0

Definition at line 67 of file menus.c.

Referenced by HandleEnterNotify(), HandleKeyPress(), MoveMenu(), PopDownMenu(), PopUpMenu(), and UpdateMenu().

◆ menuFromFrameOrWindowOrTitlebar

bool menuFromFrameOrWindowOrTitlebar = false

◆ [struct]

struct { ... } MenuOrigins[ 10 /* max number of nested menus */ ]

Referenced by MoveMenu(), PopUpMenu(), and UpdateMenu().

◆ x

int x

◆ y

int y