wlist.c

来自「gsac程序包」· C语言 代码 · 共 178 行

C
178
字号
/* File>>> wlist.c---- %M% -- version %I% (IMEC)            last updated: %E%---- Copyright (c) 1993-- IMEC vzw-- Kapeldreef 75-- B-3001 LEUVEN-- BELGIUM---- Author   : A. Demaree---- Date     : February 1, 1993---- Function :---- Comment  :---- Review   :--*//*-------------------------------------------------------------------------------- Global include files------------------------------------------------------------------------------*/#include <stdlib.h>#include <stdio.h>#include <string.h>#include <X11/Xlib.h>/*-------------------------------------------------------------------------------- Local include files------------------------------------------------------------------------------*/#include "xviglocal.h"/*-------------------------------------------------------------------------------- Static variable declarations------------------------------------------------------------------------------*/static WinItem startWindow = (WinItem) NULL,               stopWindow = (WinItem) NULL;/*-------------------------------------------------------------------------------- Local function declarations------------------------------------------------------------------------------*//*------------------------------------------------------------------------------------------------------------------------------------------------------------------*/void New_WinItem(char *name,                 int pid){  WinItem curwin;  curwin = (WinItem) malloc(sizeof(aWinItem));  curwin->name = STRNEW(name);  curwin->pid = pid;  curwin->window = XviG_window;  curwin->pixmap = XviG_pixmap;  curwin->width = XviG_window_width;  curwin->height = XviG_window_height;  curwin->next = (WinItem) NULL;  if (!startWindow)  {    curwin->prev = (WinItem) NULL;    startWindow = stopWindow = curwin;  }  else  {    curwin->prev = stopWindow;    stopWindow->next = curwin;    stopWindow = curwin;  }  selected_winitem = curwin;}/*------------------------------------------------------------------------------------------------------------------------------------------------------------------*/void Delete_WinItem(WinItem curwin){  if (curwin == startWindow)  {    if (curwin == stopWindow)      startWindow = (WinItem) NULL;    else    {      curwin->next->prev = (WinItem) NULL;      startWindow = curwin->next;    }  }  else  if (curwin == stopWindow)  {    curwin->prev->next = (WinItem) NULL;    stopWindow = curwin->prev;  }  else  {    curwin->prev->next = curwin->next;    curwin->next->prev = curwin->prev;  }  /*  -- If it is the currently selected window, change all the global IDS  */  if ((curwin->window == XviG_window) && (curwin->prev || curwin->next))  {    WinItem newwin;    newwin = curwin->prev ? curwin->prev : curwin->next;    XviG_window = newwin->window;    XviG_pixmap = newwin->pixmap;    XviG_window_width = newwin->width;    XviG_window_height = newwin->height;    selected_winitem = newwin;  }  /*  -- Free it  */  free(curwin->name);  free(curwin);}/*------------------------------------------------------------------------------------------------------------------------------------------------------------------*/WinItem Get_WinItem(char *name){  WinItem loopwin;  for (loopwin = startWindow; loopwin; loopwin = loopwin->next)  {    if (!strcmp(loopwin->name, name))      return loopwin;  }  return (WinItem) NULL;}/*------------------------------------------------------------------------------------------------------------------------------------------------------------------*/void XviG_CleanupWindows(void){  WinItem loopwin, nextwin;  for (loopwin = startWindow; loopwin; loopwin = nextwin)  {    nextwin = loopwin->next;    (void) XviG_CloseWindow(loopwin->name);  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?