Пример #1
0
/* webclient_datahandler():
 *
 * Callback function. Called from the webclient module when HTTP data
 * has arrived.
 */
void
webclient_datahandler(char *data, u16_t len)
{
  if(len > 0) {
    if(strcmp(webclient_mimetype(), http_texthtml) == 0) {
      count = (count + 1) & 3;
      show_statustext(receivingmsgs[count]);
      htmlparser_parse(data, len);
      redraw_window();
    } else {
      uip_abort();
#if WWW_CONF_WITH_WGET
      ctk_dialog_open(&wgetdialog);
#endif /* WWW_CONF_WITH_WGET */
    }
  } else {
    /* Clear remaining parts of page. */
    loading = 0;
  }
  
  if(data == NULL) {
    loading = 0;
    show_statustext("Done.");
    petsciiconv_topetscii(&webpage[(WWW_CONF_WEBPAGE_HEIGHT - 1) *
				   WWW_CONF_WEBPAGE_WIDTH], WWW_CONF_WEBPAGE_WIDTH);
    CTK_WIDGET_FOCUS(&mainwindow, &urlentry);
    redraw_window();
  }
}
Пример #2
0
void about()
  {
  FC_TABLE c = {0,RGB555(31,31,0),RGB555(28,28,28),RGB555(24,24,24),RGB555(20,20,20)};
  FC_TABLE c2= {0,RGB555(31,16,0),RGB555(28,16,0),RGB555(24,16,0),RGB555(20,16,0)};
  FC_TABLE c3= {0,RGB555(0,24,0),RGB555(0,20,0),RGB555(0,16,0),RGB555(0,10,0)};
  static about_win = -1;

  if (find_window(about_win) == NULL)
  {
  about_win = def_window(300,200,"About");
  waktual->x = 320-150;
  waktual->y = 140;
  memcpy(f_default,flat_color(0x0),sizeof(FC_TABLE));
  waktual->modal = 1;
  default_font = vga_font;
  define(-1,5,25,29,29,0,dtext,"\x8");property(NULL,icones,&c,WINCOLOR);
  define(-1,75,25,100,29,0,dtext,"MAPEDIT");property(NULL,NULL,&c2,WINCOLOR);
  define(-1,200,35,60,29,0,label,"verze 2.0");property(NULL,NULL,&c3,WINCOLOR);
  define(-1,20,80,200,10,0,label,"Naps no pro hru \"Br ny Skeldalu\"");
  define(-1,20,92,200,10,0,label,"(C) 1997 Napoleon gameS ");
  define(-1,20,104,200,10,0,label,"Naprogamoval: Ond©ej Nov k ");
  define(-1,20,116,200,10,0,label,"Tento software sm¡ b˜t pou‘it jen");
  define(-1,20,128,200,10,0,label,"ve spojen¡ s v˜vojem hry \"Br ny");
  define(-1,20,140,200,10,0,label,"Skeldalu\" (a p©¡padn‚ dal¨¡ verze)");
  define(-1,20,152,200,10,0,label,"a to pouze ‡leny v˜vojov‚ho t˜mu.");
  define(10,110,170,80,20,0,button,"Ok");on_change(close_test);
  }
  else select_window(about_win);
  redraw_window();
  }
Пример #3
0
/****************************************************************
*																*
*				met un secteur dans le tampon					*
*																*
****************************************************************/
void copier_tampon(windowptr thewin)
{
	int i;
	char scrap_path[FILENAME_MAX];

	switch (thewin -> type)
	{
		case SECTEUR:
		case FICHIER:
		case FICHIER_FS:
		case RAW_FLOPPY:
		case RAW_HARD:
			for (i=0; i<512; i++)
				Tampon -> fonction.tampon.secteurBin[i] = (thewin -> fonction.secteur.page*512L + thewin -> fonction.secteur.secteurBin)[i];

			/* update la fenˆtre Tampon */
			if (Menu[OUVRIR_TAMPON].ob_state & DISABLED) /* la fenˆtre est d‚j… ouverte */
			{
				convert_sect(Tampon -> fonction.secteur.secteurBin, Tampon -> fonction.text.Ligne, Tampon -> fonction.secteur.ascii);

				Efface = FALSE;
				redraw_window(Tampon -> win, &Tampon -> win -> work);
			}
			ajoute(Firstwindow, Messages(TAMPON_10));

		case TEXT:
		case TAMPON:
			if (ClipBoard && scrp_read(scrap_path))
				copier_clipboard(thewin, scrap_path);
			break;
	}
} /* copier_tampon */
Пример #4
0
char ask_password(char *pass,char text)
  {
  char *c;

  switch (text)
    {
    case 0:c ="Provˆ©en¡";break;
    case 1:c ="Zmˆna hesla";break;
    case 2:c ="Kontrola";break;
    }
  def_dialoge(320-100,240-50,200,90,c);
  define(-1,10,20,1,1,0,label,"Vlo‘ heslo:");
  define(10,10,40,180,12,0,input_line,49);
  property(def_border(3,WINCOLOR),NULL,flat_color(RGB555(31,31,31)),RGB555(8,8,8));
  if (text == 1)set_default(pass);else set_default("");on_event(ask_password_event);
  define(20,5,5,50,20,2,button,"OK");
  property(def_border(1,0),NULL,NULL,WINCOLOR);on_change(terminate);
  define(30,5,5,50,20,3,button,"Zru¨it");
  property(def_border(1,0),NULL,NULL,WINCOLOR);on_change(terminate);
  redraw_window();
  goto_control(10);
  escape();
  if (o_aktual->id == 30) text = 0;else
    {
    text = 1;
    get_value(0,10,pass);
    }
  close_current();
  return text;
  }
Пример #5
0
/****************************************************************
*																*
*					echange un secteur et le tampon				*
*																*
****************************************************************/
void echanger_tampon(windowptr thewin)
{
	char c;
	int i;

	switch (thewin -> type)
	{
		case SECTEUR:
		case FICHIER:
		case FICHIER_FS:
		case RAW_FLOPPY:
		case RAW_HARD:
			for (i=0; i<512; i++)
			{
				c = (thewin -> fonction.secteur.page*512L + thewin -> fonction.secteur.secteurBin)[i];
				(thewin -> fonction.secteur.page*512L + thewin -> fonction.secteur.secteurBin)[i] = Tampon -> fonction.tampon.secteurBin[i];
				Tampon -> fonction.tampon.secteurBin[i] = c;
			}

			thewin -> fonction.secteur.dirty = TRUE;
			secteur_window_update(thewin, FALSE);

			/* update la fenˆtre Tampon */
			if (Menu[OUVRIR_TAMPON].ob_state & DISABLED)
			{
				convert_sect(Tampon -> fonction.secteur.secteurBin, Tampon -> fonction.text.Ligne, Tampon -> fonction.secteur.ascii);

				Efface = FALSE;
				redraw_window(Tampon -> win, &Tampon -> win -> work);
			}

			ajoute(Firstwindow, Messages(TAMPON_12));
	}
} /* echanger_tampon */
Пример #6
0
/* webclient_closed():
 *
 * Callback function. Called from the webclient when the HTTP
 * connection was closed after a request from the "webclient_close()"
 * function.
 */
void
webclient_closed(void)
{
  show_statustext("Stopped.");
  petsciiconv_topetscii(webpageptr - x, x);
  CTK_WIDGET_FOCUS(&mainwindow, &downbutton);
  redraw_window();
}
Пример #7
0
/*-----------------------------------------------------------------------------------*/
static void
clear_page(void)
{
    ctk_window_clear(&mainwindow);
    make_window();
    memset(webpage, 0, WWW_CONF_WEBPAGE_WIDTH * WWW_CONF_WEBPAGE_HEIGHT);
    redraw_window();
}
Пример #8
0
inline void IAtelier_summer::ToggleToolbar(const char* toolbar_name/* = "toolbar"*/)
{
    CToolbar_summer* tb = (CToolbar_summer*)find_glyph(toolbar_name);
    if (tb) tb->toggle_visible();

    //change(GLYPH_CHANGED_CANVAS_BKG | GLYPH_CHANGED_CANVAS);
    redraw_window();
}
Пример #9
0
void open_editor_win()
  {
  if (find_window(editor_win) == NULL)
     {
     editor_win = def_window(100,150,"Editory");
     define(10,10,25,80,20,0,button,"map script");on_change(edit_script_file);
     define(20,10,50,80,20,0,button,"map texty");on_change(edit_script_file);
     define(30,10,75,80,20,0,button,"items.scr");on_change(edit_script_file);
     define(40,10,100,80,20,0,button,"items.pic");on_change(edit_script_file);
     define(50,10,125,80,20,0,button,"animator");on_change(call_animator);
     redraw_window();
     }
  else
     {
     select_window(editor_win);
     redraw_window();
     }
  }
Пример #10
0
/* webclient_closed():
 *
 * Callback function. Called from the webclient when the HTTP
 * connection was closed after a request from the "webclient_close()"
 * function. .
 */
void
webclient_closed(void)
{
  show_statustext("Stopped.");
  petsciiconv_topetscii(&webpage[(WWW_CONF_WEBPAGE_HEIGHT - 1) *
				 WWW_CONF_WEBPAGE_WIDTH], WWW_CONF_WEBPAGE_WIDTH);
  CTK_WIDGET_FOCUS(&mainwindow, &downbutton);
  redraw_window();
}
Пример #11
0
static void edit_scrollto(void *data, int kind)
{
    EDITINFO *einf = (EDITINFO*) data;
    /*
    ** handle scrollbar up/down/left/right
    ** redraw drawwin
    */
    if (!kind) {
	redraw_window(einf->info);
    } else {
	/* vertical scroll */
	int line_nr = scrollbar_line(einf->scrollver,0);
	editwindow_line(einf->info, line_nr);
    }
}
Пример #12
0
void window_request(int pid, unsigned char *req) {

    /* window request */
    if (req[1] == WMREQ_REGWIN)
        add_window(pid, (wm_reg_t *) req);
    else if (req[1] == WMREQ_REDRAW)
        redraw_window(pid, (wm_redraw_t *) req);
    else if (req[1] == WMREQ_CLOSEWIN)
        close_window(pid, (wm_closewin_t *) req);
    else if (req[1] == WMREQ_SET_WP) {
        set_wallpaper(((wm_set_wallpaper_t *) req)->index);
        update_screen();
    }

}
Пример #13
0
void edit_sector(int source)
  {
  TSECTOR *p;
  TSTR_LIST l;
  CTL3D b1,b2,b3;

  l=read_directory("c:\\windows\\system\\*.*",DIR_FULL,_A_NORMAL);
  p=&mapa.sectordef[source];
  memcpy(&b1,def_border(1,0),sizeof(CTL3D));
  memcpy(&b2,def_border(5,WINCOLOR),sizeof(CTL3D));
  memcpy(&b3,def_border(3,WINCOLOR),sizeof(CTL3D));
  default_font=vga_font;
  memcpy(f_default,flat_color(0x0000),sizeof(charcolors));
  def_dialoge(100,100,300,200,"String list - test only");
  define(9,10,20,240,170,0,listbox,l,0x1f);c_default(0);
  o_end->autoresizex=1;
  o_end->autoresizey=1;
  define(10,3,42,17,110,1,scroll_bar_v,0,10,1,SCROLLBARCOL);
  property(NULL,NULL,NULL,WINCOLOR);
  o_end->autoresizey=1;
  define(11,1,20,21,17,1,scroll_button,-1,0,"\x1e");
  property(NULL,icones,NULL,WINCOLOR);on_change(scroll_support);
  define(12,1,22,21,17,2,scroll_button,1,10,"\x1f");
  property(NULL,icones,NULL,WINCOLOR);on_change(scroll_support);
  define(20,1,1,10,10,2,resizer);
/*  define(OK_BUTT,100,5,80,20,2,button,"Ok");property(&b1,NULL,NULL,WINCOLOR);
    on_change(terminate);
  define(CANCEL_BUTT,10,5,80,20,2,button,"Zru¨it");property(&b1,NULL,NULL,WINCOLOR);
    on_change(terminate);
  define(-1,5,20,100,12,0,label,"P©ipojen¡:");
  define(10,10,35,50,12,0,input_line,20,0,MAPSIZE-1,"%6d");property(&b2,NULL,NULL,WINCOLOR);
    set_default(strs(p->step_next[0]));on_exit(test_int);
  define(20,10,50,50,12,0,input_line,20,0,MAPSIZE-1,"%6d");property(&b2,NULL,NULL,WINCOLOR);
    set_default(strs(p->step_next[1]));on_exit(test_int);
  define(30,10,65,50,12,0,input_line,20,0,MAPSIZE-1,"%6d");property(&b2,NULL,NULL,WINCOLOR);
    set_default(strs(p->step_next[2]));on_exit(test_int);
  define(40,10,80,50,12,0,input_line,20,0,MAPSIZE-1,"%6d");property(&b2,NULL,NULL,WINCOLOR);
    set_default(strs(p->step_next[3]));on_exit(test_int);
  define(50,70,35,80,12,0,button,"Sever");property(&b1,NULL,NULL,WINCOLOR);on_change(edit_side_sup);
  define(60,70,50,80,12,0,button,"V˜chod");property(&b1,NULL,NULL,WINCOLOR);on_change(edit_side_sup);
  define(70,70,65,80,12,0,button,"Jih");property(&b1,NULL,NULL,WINCOLOR);on_change(edit_side_sup);
  define(80,70,80,80,12,0,button,"Z pad");property(&b1,NULL,NULL,WINCOLOR);on_change(edit_side_sup);
  temp_source=source;
  */redraw_window();
  escape();
  close_window(waktual);
  release_list(l);
  }
Пример #14
0
/****************************************************************
*																*
*				efface le tampon (met … 0)						*
*																*
****************************************************************/
void effacer_tampon(void)
{
	int i;

	for (i=0; i<512; i++)
		Tampon -> fonction.tampon.secteurBin[i] = '\0';

	/* update la fenˆtre Tampon */
	if (Menu[OUVRIR_TAMPON].ob_state & DISABLED)
	{
		convert_sect(Tampon -> fonction.secteur.secteurBin, Tampon -> fonction.text.Ligne, Tampon -> fonction.secteur.ascii);

		Efface = FALSE;
		redraw_window(Tampon -> win, &Tampon -> win -> work);
	}
} /* effacer_tampon */
Пример #15
0
int execute(char program[MAXSTRING],char command[MAXSTRING],int multi)
{
  char comstring[MAXSTRING+1];

  if(!multi)
  {
//    hide_dialog(NULL);
    strncpy(comstring," ",MAXSTRING);
    comstring[MAXSTRING]=EOL;
    strncat(comstring,command,MAXSTRING);
    comstring[MAXSTRING]=EOL;
    Pexec(0,program,comstring,NULL);
    menu_bar(menu_tree, 1);
    redraw_window(NULL);
//    unhide_dialog(NULL);  
  }
  Return TRUE;
}
Пример #16
0
/****************************************************************
*																*
*					Lit le le ClipBoard							*
*																*
****************************************************************/
void coller_clipboard(char *scrap_path)
{
	FILE *fd;
	char scrap_file[FILENAME_MAX];

	/* le fichier en binaire */
	strcpy(scrap_file, scrap_path);
	strcat(scrap_file, "SCRAP.BIN");

	/* ouverture du fichier */
	if ((fd = fopen(scrap_file, "rb")) != NULL)
	{
		/* lecture du fichier */
		fread(Tampon -> fonction.secteur.secteurBin, 512L, 1L, fd);

		/* fermeture */
		fclose(fd);
	}
	else
	{
		/* le fichier texte */
		strcpy(scrap_file, scrap_path);
		strcat(scrap_file, "SCRAP.TXT");

		/* ouverture du fichier */
		if ((fd = fopen(scrap_file, "rb")) != NULL)
		{
			/* lecture du fichier */
			fread(Tampon -> fonction.secteur.secteurBin, 512L, 1L, fd);

			/* fermeture */
			fclose(fd);
		}
	}

	/* update la fenˆtre Tampon */
	if (Menu[OUVRIR_TAMPON].ob_state & DISABLED)
	{
		convert_sect(Tampon -> fonction.secteur.secteurBin, Tampon -> fonction.text.Ligne, Tampon -> fonction.secteur.ascii);

		Efface = FALSE;
		redraw_window(Tampon -> win, &Tampon -> win -> work);
	}
} /* coller_clipboard */
Пример #17
0
/****************************************************************
*																*
*				Actif ou D‚sactive le ClipBoard GEM				*
*																*
****************************************************************/
void clipboard_gem(windowptr thewin)
{
	char scrap_path[FILENAME_MAX];

	if (!(ClipBoard || scrp_read(scrap_path)))
	{
		error_msg(Z_CLIPBOARD_NOT_INSTALLED);
		return;
	}

	if (test_scrap_path(scrap_path))
		return;

	ClipBoard = 1-ClipBoard;

	if (ClipBoard)
	{
		char text[80];

		ajoute(Firstwindow, Messages(TAMPON_15));

		sprintf(text, Messages(TAMPON_16), scrap_path);
		ajoute(Firstwindow, text);
	}
	else
		ajoute(Firstwindow, Messages(TAMPON_17));

	menu_icheck(Menu, CLIPBOARD_GEM, ClipBoard);
	make_frontwin(thewin);

	if (ClipBoard)
		coller_clipboard(scrap_path);

	/* update la fenˆtre Tampon */
	if (Menu[OUVRIR_TAMPON].ob_state & DISABLED)
	{
		convert_sect(Tampon -> fonction.secteur.secteurBin, Tampon -> fonction.text.Ligne, Tampon -> fonction.secteur.ascii);

		Efface = FALSE;
		redraw_window(Tampon -> win, &Tampon -> win -> work);
	}
} /* clipboard_gem */
Пример #18
0
void jdi_na_sektor(s)
  {
  WINDOW *w,*w2;
  if (!s) return;
  cur_layer=minfo[s].layer;
  xmap_offs=minfo[s].x;
  ymap_offs=minfo[s].y;
  c_set_value(map_win,20,ymap_offs);
  c_set_value(map_win,30,xmap_offs);
  unselect_map();
  minfo[s].flags=1;
  info_sector(s);
  w=find_window(map_win);
  w2=waktual;
  if (w!=NULL)
     {
     waktual=w;
     redraw_window();
     waktual=w2;
     }
  }
Пример #19
0
void action_flags()
  {
  CTL3D b1;
  long flags;

  flags=f_get_value(0,350);
  memcpy(&b1,def_border(1,0),sizeof(CTL3D));
  def_dialoge(300,220,300,210,"V¡ce vlajek");
  define(CANCEL_BUTT,11,5,80,20,2,button,"Zru¨it");property(&b1,NULL,NULL,WINCOLOR);
  on_change(terminate);
  define(OK_BUTT,100,5,80,20,2,button,"Ok");property(&b1,NULL,NULL,WINCOLOR);
  on_change(terminate);
  define(10,10,20,250,10,0,check_box,side_flgs[24]);
  define(20,10,32,250,10,0,check_box,side_flgs[25]);
  define(30,10,44,250,10,0,check_box,side_flgs[26]);
  define(40,10,56,250,10,0,check_box,side_flgs[27]);
  define(50,10,68,250,10,0,check_box,side_flgs[28]);
  define(60,10,88,250,10,0,check_box,side_flgs[29]);
  define(70,10,100,250,10,0,check_box,side_flgs[30]);
  define(80,10,112,250,10,0,check_box,side_flgs[31]);
  define(90,10,124,250,10,0,check_box,side_flgs[20]);
  define(100,10,136,250,10,0,check_box,side_flgs[21]);
  define(110,10,148,250,10,0,check_box,side_flgs[22]);
  define(120,10,160,250,10,0,check_box,side_flgs[23]);
  fill_bit_fields(0,10,flags>>24,8);
  fill_bit_fields(0,90,flags>>20,4);
  redraw_window();
  escape();
  if (o_aktual->id==OK_BUTT)
     {
     flags=get_bit_fields(0,10,8)<<24;
     flags|=get_bit_fields(0,90,4)<<20;

     }
  close_window(waktual);
  c_set_value(0,350,flags);
  }
Пример #20
0
static void scroll_up(console_private_t *pcp)
{
    cursor(pcp, CS_SUSPEND);

    /* mark that we scrolled up by one line */
    ++pcp->scroll_up;

    /* move all lines one line up */
    memmove(pcp->pchWindowBuffer, &pcp->pchWindowBuffer[pcp->xMax], CALC_POS(pcp, 0, pcp->yMax - 1));

    /* clear the last line */
    memset(&pcp->pchWindowBuffer[CALC_POS(pcp, 0, pcp->yMax - 1)], ' ', pcp->xMax);

    move_upwards(pcp);

    /* force repainting of the whole window */
#if 0
    /*
     @SRT this variant takes less processor time because
     hopefully, the window needs not to be updated with
     every single scroll.
    */
    InvalidateRect(pcp->hwndConsole, NULL, FALSE );
#else
    /*
     @SRT this variant looks more realistic since every
     single scroll can be seen by the user
    */
    redraw_window(pcp, NULL);
#endif

    /* Adjust the line where the input begins */
    pcp->yPosInputLineStart--;

    cursor(pcp, CS_RESUME);
}
Пример #21
0
void
redraw_cmdline(void)
{
	if(prev_mode == MENU_MODE)
	{
		menu_redraw();
	}
	else
	{
		redraw_window();
		if(prev_mode == SORT_MODE)
			redraw_sort_dialog();
		else if(prev_mode == ATTR_MODE)
			redraw_attr_dialog();
	}

	line_width = getmaxx(stdscr);
	curs_set(TRUE);
	update_cmdline_size();
	update_cmdline_text();

	if(cfg.wild_menu)
		draw_wild_menu(-1);
}
Пример #22
0
void
show_full_file_properties(FileView *view)
{
	char name_buf[PATH_MAX];
//	char perm_buf[26];
	char size_buf[56];
//	char uid_buf[26];
	char buf[256];
	//struct passwd *pwd_buf;
  	//struct group *grp_buf;
	struct tm *tm_ptr;
	int x, y;
	int key = 0;
	int done = 0;


	curr_stats.show_full = 0;

	setup_menu(view);

	getmaxyx(menu_win, y, x);
	werase(menu_win);

	snprintf(name_buf, sizeof(name_buf), "%s", 
			view->dir_entry[view->list_pos].name);

	describe_file_size(size_buf, sizeof(size_buf), view);
	

	mvwaddstr(menu_win, 2, 2, "File: ");
	mvwaddnstr(menu_win, 2, 8, name_buf, x - 8);
	mvwaddstr(menu_win, 4, 2, "Size: ");
	mvwaddstr(menu_win, 4, 8, size_buf);

/*
	mvwaddstr(menu_win, 6, 2, "Type: ");
	if(S_ISLNK(view->dir_entry[view->list_pos].mode))
	{
		char linkto[PATH_MAX +NAME_MAX];
		int len;
		char *filename = strdup(view->dir_entry[view->list_pos].name);
		len = strlen(filename);
		if (filename[len - 1] == '/')
			filename[len - 1] = '\0';

	  	mvwaddstr(menu_win, 6, 8, "Link");
		len = readlink (filename, linkto, sizeof (linkto));

		mvwaddstr(menu_win, 7, 2, "Link To: ");
		if (len > 0)
		{
			linkto[len] = '\0';
			mvwaddnstr(menu_win, 7, 11, linkto, x - 11);
		}
	  	else
			mvwaddstr(menu_win, 7, 11, "Couldn't Resolve Link");
	}
 	else if (S_ISREG (view->dir_entry[view->list_pos].mode))
   	{
		FILE *pipe;
		char command[1024];
		char buf[NAME_MAX];
*/

		/* Use the file command to get file information */
/*
		snprintf(command, sizeof(command), "file \"%s\" -b", 
				view->dir_entry[view->list_pos].name);

		if ((pipe = popen(command, "r")) == NULL)
		{
			mvwaddstr(menu_win, 6, 8, "Unable to open pipe to read file");
			return;
		}

		fgets(buf, sizeof(buf), pipe);

		pclose(pipe);

		mvwaddnstr(menu_win, 6, 8, buf, x - 9);
*/
		/*
		if((S_IXUSR &view->dir_entry[view->list_pos].mode)
				|| (S_IXGRP &view->dir_entry[view->list_pos].mode)
				|| (S_IXOTH &view->dir_entry[view->list_pos].mode))

			mvwaddstr(other_view->win, 6, 8, "Executable");
		else
			mvwaddstr(other_view->win, 6, 8, "Regular File");
	}
	if (S_ISDIR (view->dir_entry[view->list_pos].mode))
	{
	  mvwaddstr(menu_win, 6, 8, "Directory");
	}
	else if (S_ISCHR (view->dir_entry[view->list_pos].mode))
	{
	  mvwaddstr(menu_win, 6, 8, "Character Device");
	}
	else if (S_ISBLK (view->dir_entry[view->list_pos].mode))
	{
	  mvwaddstr(menu_win, 6, 8, "Block Device");
	}
	else if (S_ISFIFO (view->dir_entry[view->list_pos].mode))
	{
	  mvwaddstr(menu_win, 6, 8, "Fifo Pipe");
	}
    else if (S_ISSOCK (view->dir_entry[view->list_pos].mode))
    {
	  mvwaddstr(menu_win, 6, 8, "Socket");
    }
  	else
    {
	  mvwaddstr(menu_win, 6, 8, "Unknown");
    }
*/

//	mvwaddstr(menu_win, 8, 2, "Permissions: ");
//	mvwaddstr(menu_win, 8, 15, perm_buf);
	mvwaddstr(menu_win, 10, 2, "Modified: ");
	tm_ptr = localtime(&view->dir_entry[view->list_pos].mtime);
  	strftime (buf, sizeof (buf), "%a %b %d %I:%M %p", tm_ptr);
	mvwaddstr(menu_win, 10, 13, buf);
	mvwaddstr(menu_win, 12, 2, "Accessed: ");
	tm_ptr = localtime(&view->dir_entry[view->list_pos].atime);
  	strftime (buf, sizeof (buf), "%a %b %d %I:%M %p", tm_ptr);
	mvwaddstr(menu_win, 12, 13, buf);
	mvwaddstr(menu_win, 14, 2, "Changed: ");
	tm_ptr = localtime(&view->dir_entry[view->list_pos].ctime);
  	strftime (buf, sizeof (buf), "%a %b %d %I:%M %p", tm_ptr);
	mvwaddstr(menu_win, 14, 13, buf);
	//mvwaddstr(menu_win, 16, 2, "Owner: ");
	//mvwaddstr(menu_win, 16, 10, uid_buf);
	//mvwaddstr(menu_win, 18, 2, "Group: ");
/*
	if((grp_buf = getgrgid(view->dir_entry[view->list_pos].gid)) != NULL)
	{
		mvwaddstr(menu_win, 18, 10, grp_buf->gr_name);
	}
*/
	wnoutrefresh(menu_win);

	box(menu_win, 0, 0);
	wrefresh(menu_win);
	while(!done)
	{
		key = wgetch(menu_win);
	
		/* ascii Return - Ctrl-c  - Escape */
		if(key == 13 || key == 3 || key == 27)
			done = 1;
	}
	werase(menu_win);
	curr_stats.menu = 0;
	redraw_window();
}
Пример #23
0
/****************************************************************
*																*
*				cherche une chaŒne dans le tampon				*
*																*
****************************************************************/
void search_tampon(windowptr thewin, boolean diff_majmin)
{
	register char *buffer, search_char;
	register int i, j;
	int start, curseur_x = thewin -> fonction.fichier.curseur_x, curseur_y = thewin -> fonction.fichier.curseur_y;

	buffer = Tampon -> fonction.tampon.secteurBin;
	start = curseur_x < 0 ? 0 : thewin -> fonction.fichier.curseur_y*32 + curseur_x/2 +1;

	search_char = SearchString[0];
	if (diff_majmin)
	{
		for (i=start; i<512; i++)
			if (buffer[i] == search_char)
			{
				for (j=1; j<SearchLength && i+j<512 && buffer[i+j] == SearchString[j]; j++)
					;
				if (j == SearchLength)
				{
					thewin -> fonction.fichier.curseur_x = 2*(i&31);
					thewin -> fonction.fichier.curseur_y = i/32;
					if (curseur_x < 0)
					{
						update_curseur(thewin, 2*(i&31), i/32, FAIL, FAIL, FALSE);
						menu_icheck(Menu, CURSEUR_VISIBLE, 1);
					}
					else
						update_curseur(thewin, 2*(i&31), i/32, curseur_x, curseur_y, FALSE);

					Efface = FALSE;
					redraw_window(thewin -> win, &thewin -> win -> work);
					return;
				}
			}
	}
	else
	{
		for (i=start; i<512; i++)
			if ((buffer[i] & 0xDF) == (search_char & 0xDF))
			{
				for (j=1; j<SearchLength && i+j<512 && (buffer[i+j] & 0xDF) == (SearchString[j] & 0xDF); j++)
					;
				if (j == SearchLength)
				{
					thewin -> fonction.fichier.curseur_x = 2*(i&31);
					thewin -> fonction.fichier.curseur_y = i/32;
					if (curseur_x < 0)
					{
						update_curseur(thewin, 2*(i&31), i/32, FAIL, FAIL, FALSE);
						menu_icheck(Menu, CURSEUR_VISIBLE, 1);
					}
					else
						update_curseur(thewin, 2*(i&31), i/32, curseur_x, curseur_y, FALSE);

					Efface = FALSE;
					redraw_window(thewin -> win, &thewin -> win -> work);
					return;
				}
			}
	}
} /* search_tampon */
Пример #24
0
void Ending(void)
{
    char stuff[][2][32] = 
    {
    {"XSoldier staff",      ""},
    {"Producer",            "Y.Hashimoto"},
    {"Program",             "R.Masuda"},
    {"",                    "Y.Hashimoto"},
    {"Character Algorithm", "K.Inomata"},
    {"",                    "H.Yokobori"},
    {"",                    "M.Nakayama"},
    {"",                    "Y.Hashimoto"},
    {"Character Design",    "H.Hayakawa"},
    {"",                    "Y.Hashimoto"},
    {"1.x Series Developer", "Oohara Yuuma"},
    {"Special Thanks",      "N.Oohashi"},
    {"",                    "T.Yamada"},
    {"",                    "T.Igari"},
    {"",                    "RAKI all members"},
    {"",                    ".... and YOU."},
    };

    char msg[][30] = 
    {
	"Try Next Stage!!",
	"You are a great soldier!!!",
	"crazy ........"
    };

    /* number of staffs */
    int stfnumber = 16;
    int count = 0;
    int time = (stfnumber + 6) * 100;
    int len;
    int i;

    while (1)
    {
        if (waittime && (signal_delivered==0))
	    pause();
        signal_delivered = 0;

	if (count < time)
        {
            count++;
        }

        if (event_handle_ending() == 0)
          return;

        clear_window();
	DrawStar(StarPtn1);
	DrawStar(StarPtn2);

	for (i=0; i<stfnumber; i++)
	{
	    if (i == 0)
	    {
		draw_string(210, FieldH - count + 100 * i,
                            stuff[i][0], strlen(stuff[i][0]));
		draw_string(450, FieldH - count + 100 * i,
                            stuff[i][1], strlen(stuff[i][1]));
	    }
	    else
	    {
		draw_string(100, FieldH - count + 100 * i,
                            stuff[i][0], strlen(stuff[i][0]));
		draw_string(300, FieldH - count + 100 * i + 30,
                            stuff[i][1], strlen(stuff[i][1]));
	    }
	}
	
	if (count > time-30)
	{
	    len = count - (time-30);

	    if (manage->Loop < 3)
	    {
		if (len >= strlen(msg[manage->Loop-1]))
                {
                  draw_string(200, 440, "Press space key",
                              strlen("Press space key"));
                  len = strlen(msg[manage->Loop-1]);
                }
                
		draw_string(200, 400, msg[manage->Loop-1], len);
	    }
	    else
	    {
		if (len >= strlen(msg[2]))
                {
                  draw_string(200, 440, "Press space key",
                              strlen("Press space key"));
                  len = strlen(msg[2]);
                }
	    }
	}

        redraw_window();
    }
}
Пример #25
0
void handle_msg(int *msg)
{
	WINDOWP	window;

	wake_mouse();
	window= get_window(msg[3]);			/* Zugeh�riges Fenster */

	switch (msg[0])							/* Art der Nachricht */
	{
		case MN_SELECTED:
			if (makro_rec)						/* Makro wird Tastendruck vorgegaukelt */
			{
				int	kstate, kreturn;
				char	str[50];
				
				get_string(menu, msg[4], str);
				if (str_to_key(str, &kstate, &kreturn))
				{
					kstate |= (kstate & 3);
					to_makro(kstate, kreturn);
				}
			}
			handle_menu(msg[3], msg[4], menu_ctrl);
			menu_ctrl = FALSE;
			break;
		case WM_REDRAW  :
			if (msg[3] == akt_handle)
				redraw_aktion();
			else
				redraw_window (window, (GRECT*)(msg+4));
			break;
		case WM_CLOSED  :
			do_icon(window->handle, DO_DELETE);
			break;
		case WM_FULLED  :
			full_window (window);
			break;
		case WM_ARROWED :
			arrow_window (window, msg[4], 1);
			break;
		case WM_HSLID	 :
			h_slider (window, msg[4]);
			break;
		case WM_VSLID	 :
			v_slider (window, msg[4]);
			break;
		case WM_SIZED	 :
			size_window (window, (GRECT*)(msg+4), TRUE);
			break;
		case WM_MOVED	 :
			move_window (window, (GRECT*)(msg+4));
			break;
		case WM_NEWTOP	 : /* Fenster von qed ist irgendwie nach oben gekommen */
		case WM_ONTOP	 :
			ontop_window(window);
			break;
		case WM_TOPPED  :
			top_window (window);
			break;
		case WM_UNTOPPED: /* qed hat jetzt nicht mehr das Top-Fenster */
			untop_window (window);
			break;
		case WM_BOTTOMED: 	/* AES 4.00 MagiC 3 : Fenster nach hinten */
		case WM_M_BDROPPED :	/* Magic 2 */
			bottom_window (window, msg[0]);
			break;
		case WM_ICONIFY:
			iconify_window(window, (GRECT*)(msg+4));
			break;
		case WM_ALLICONIFY:
			all_iconify(window, (GRECT*)(msg+4));
			break;
		case WM_UNICONIFY:
			if (all_iconified)
				all_uniconify(NULL, (GRECT*)(msg+4));
			else
				uniconify_window(window, (GRECT*)(msg+4));
			break;
		case WM_SHADED :
		case WM_UNSHADED :
			shade_window(window, msg[0]);
			break;

		case AP_TERM:
			if (all_iconified)
				all_uniconify(NULL, NULL);
			quick_close = TRUE;
			if (prepare_quit())
				do_quit();
			break;
		case AP_DRAGDROP :
			if (all_iconified)
				Bconout(2, 7);
			else
				handle_dd(msg);
			break;

		case SC_CHANGED :
			/*
			 * Ignorieren, da wir vor dem Paste sowieso neu laden.
			*/
			break;

		case VA_START :
		case VA_PROTOSTATUS :
		case VA_DRAG_COMPLETE :
		case VA_DRAGACCWIND :
		case AV_SENDKEY :
			handle_av(msg);
			break;

		case SE_INIT:
		case SE_OK:
		case SE_ACK:
		case SE_OPEN:
		case SE_ERROR:
		case SE_ERRFILE:
		case SE_PROJECT:
		case SE_QUIT:
		case SE_TERMINATE:
		case SE_CLOSE :
		case SE_MENU :
			if (all_iconified)
				all_uniconify(NULL, NULL);
		   handle_se(msg);
		   break;

		case OLGA_INIT :
		case OLE_NEW :
		case OLGA_ACK :
		case OLE_EXIT :
			handle_olga(msg);
			break;

		case SH_WDRAW:				/* schickt Freedom st�ndig */
		case DHST_ACK:				/* SMU antwortet */
			/* ignore */
			break;

		case FONT_CHANGED :
			if (msg[4] != 0)
				font_id = msg[4];
			if (msg[5] != 0)
				font_pts = msg[5];
			font_change();	
			break;
			
		default:
			if (debug_level)
			{
				char	str[12];
				int	d, i, id;
	
				if ((appl_xgetinfo(4, &d, &d, &i, &d)) && (i == 1))	/* gibts appl_search? */
				{
					i = appl_search(0, str, &d, &id);
					while (i != 0)
					{
						if (id == msg[1])
							break;
						i = appl_search( 1, str, &d, &id);
					}
				}
				else
				{
					strcpy(str, "");
					id = msg[1];
				}
				debug("Unbekannte Msg %d (0x%X) von %s (%d)\n", msg[0], msg[0], str, id);
			}
			break;
	}
}
Пример #26
0
/* www_process():
 *
 * The program's signal dispatcher function. Is called whenever a signal arrives.
 */
PROCESS_THREAD(www_process, ev, data)
{
    static struct ctk_widget *w;
#if WWW_CONF_WITH_WGET
    static char *argptr;
#endif /* WWW_CONF_WITH_WGET */

    w = (struct ctk_widget *)data;

    PROCESS_BEGIN();

    /* Create the main window. */
    memset(webpage, 0, sizeof(webpage));
    ctk_window_new(&mainwindow, WWW_CONF_WEBPAGE_WIDTH,
                   WWW_CONF_WEBPAGE_HEIGHT+5, "Web browser");
    make_window();
#ifdef WWW_CONF_HOMEPAGE
    strncpy(editurl, WWW_CONF_HOMEPAGE, sizeof(editurl));
#endif /* WWW_CONF_HOMEPAGE */
    CTK_WIDGET_FOCUS(&mainwindow, &urlentry);

#if WWW_CONF_WITH_WGET || defined(WWW_CONF_WGET_EXEC)
#if CTK_CONF_WINDOWS
    /* Create download dialog.*/
    ctk_dialog_new(&wgetdialog, 38, 7);
    CTK_WIDGET_ADD(&wgetdialog, &wgetlabel1);
    CTK_WIDGET_ADD(&wgetdialog, &wgetlabel2);
    CTK_WIDGET_ADD(&wgetdialog, &wgetnobutton);
    CTK_WIDGET_ADD(&wgetdialog, &wgetyesbutton);
#endif /* CTK_CONF_WINDOWS */
#endif /* WWW_CONF_WITH_WGET || WWW_CONF_WGET_EXEC */

    ctk_window_open(&mainwindow);

    while(1) {

        PROCESS_WAIT_EVENT();

        if(ev == tcpip_event) {
            webclient_appcall(data);
        } else if(ev == ctk_signal_widget_activate) {
            if(w == (struct ctk_widget *)&gobutton ||
                    w == (struct ctk_widget *)&urlentry) {
                start_loading();
                firsty = 0;
#if WWW_CONF_HISTORY_SIZE > 0
                log_back();
#endif /* WWW_CONF_HISTORY_SIZE > 0 */
                memcpy(url, editurl, WWW_CONF_MAX_URLLEN);
                petsciiconv_toascii(url, WWW_CONF_MAX_URLLEN);
                open_url();
                CTK_WIDGET_FOCUS(&mainwindow, &gobutton);
#if WWW_CONF_HISTORY_SIZE > 0
            } else if(w == (struct ctk_widget *)&backbutton) {
                firsty = 0;
                start_loading();
                --history_last;
                if(history_last > WWW_CONF_HISTORY_SIZE) {
                    history_last = WWW_CONF_HISTORY_SIZE - 1;
                }
                memcpy(url, history[(int)history_last], WWW_CONF_MAX_URLLEN);
                open_url();
                CTK_WIDGET_FOCUS(&mainwindow, &backbutton);
#endif /* WWW_CONF_HISTORY_SIZE > 0 */
            } else if(w == (struct ctk_widget *)&downbutton) {
                firsty = pagey + WWW_CONF_WEBPAGE_HEIGHT - 4;
                start_loading();
                open_url();
                CTK_WIDGET_FOCUS(&mainwindow, &downbutton);
            } else if(w == (struct ctk_widget *)&stopbutton) {
                loading = 0;
                webclient_close();
#if WWW_CONF_WITH_WGET || defined(WWW_CONF_WGET_EXEC)
            } else if(w == (struct ctk_widget *)&wgetnobutton) {
#if CTK_CONF_WINDOWS
                ctk_dialog_close();
#else /* CTK_CONF_WINDOWS */
                clear_page();
#endif /* CTK_CONF_WINDOWS */
            } else if(w == (struct ctk_widget *)&wgetyesbutton) {
#if CTK_CONF_WINDOWS
                ctk_dialog_close();
#else /* CTK_CONF_WINDOWS */
                clear_page();
#endif /* CTK_CONF_WINDOWS */
#if WWW_CONF_WITH_WGET
                quit();
                argptr = arg_alloc((char)WWW_CONF_MAX_URLLEN);
                if(argptr != NULL) {
                    strncpy(argptr, url, WWW_CONF_MAX_URLLEN);
                }
                program_handler_load("wget.prg", argptr);
#else /* WWW_CONF_WITH_WGET */
                petsciiconv_topetscii(url, sizeof(url));
                /* Clear screen */
                ctk_restore();
                WWW_CONF_WGET_EXEC(url);
                redraw_window();
                show_statustext("Cannot exec wget");
#endif /* WWW_CONF_WITH_WGET */
#endif /* WWW_CONF_WITH_WGET || WWW_CONF_WGET_EXEC */
#if WWW_CONF_FORMS
            } else {
                /* Assume form widget. */
                struct inputattrib *input = (struct inputattrib *)
                                            (((char *)w) - offsetof(struct inputattrib, widget));
                formsubmit(input->formptr);
#endif /* WWW_CONF_FORMS */
            }
        } else if(ev == ctk_signal_hyperlink_activate) {
            firsty = 0;
#if WWW_CONF_HISTORY_SIZE > 0
            log_back();
#endif /* WWW_CONF_HISTORY_SIZE > 0 */
            set_link(w->widget.hyperlink.url);
            show_url();
            open_url();
            start_loading();
            CTK_WIDGET_FOCUS(&mainwindow, &stopbutton);
        } else if(ev == ctk_signal_hyperlink_hover) {
            if(CTK_WIDGET_TYPE((struct ctk_widget *)data) == CTK_WIDGET_HYPERLINK) {
                strncpy(statustexturl, w->widget.hyperlink.url,
                        sizeof(statustexturl));
                petsciiconv_topetscii(statustexturl, sizeof(statustexturl));
                show_statustext(statustexturl);
            }
#if UIP_UDP
        } else if(ev == resolv_event_found) {
            /* Either found a hostname, or not. */
            if((char *)data != NULL &&
                    resolv_lookup((char *)data, NULL) == RESOLV_STATUS_CACHED) {
                open_url();
            } else {
                show_statustext("Host not found");
            }
#endif /* UIP_UDP */
        } else if(ev == ctk_signal_window_close ||
                  ev == PROCESS_EVENT_EXIT) {
            quit();
        }
    }
Пример #27
0
/* open_url():
 *
 * Called when the URL present in the global "url" variable should be
 * opened. It will call the hostname resolver as well as the HTTP
 * client requester.
 */
static void
open_url(void)
{
    unsigned char i;
    static char host[32];
    char *file;
    register char *urlptr;
    static uip_ipaddr_t addr;

    /* Trim off any spaces in the end of the url. */
    urlptr = url + strlen(url) - 1;
    while(*urlptr == ' ' && urlptr > url) {
        *urlptr = 0;
        --urlptr;
    }

    /* Don't even try to go further if the URL is empty. */
    if(urlptr == url) {
        return;
    }

    /* See if the URL starts with http://, otherwise prepend it. */
    if(strncmp(url, http_http, 7) != 0) {
        while(urlptr >= url) {
            *(urlptr + 7) = *urlptr;
            --urlptr;
        }
        strncpy(url, http_http, 7);
    }

    /* Find host part of the URL. */
    urlptr = &url[7];
    for(i = 0; i < sizeof(host); ++i) {
        if(*urlptr == 0 ||
                *urlptr == '/' ||
                *urlptr == ' ' ||
                *urlptr == ':') {
            host[i] = 0;
            break;
        }
        host[i] = *urlptr;
        ++urlptr;
    }

    /* XXX: Here we should find the port part of the URL, but this isn't
       currently done because of laziness from the programmer's side
       :-) */

    /* Find file part of the URL. */
    while(*urlptr != '/' && *urlptr != 0) {
        ++urlptr;
    }
    if(*urlptr == '/') {
        file = urlptr;
    } else {
        file = "/";
    }

#if UIP_UDP
    /* Try to lookup the hostname. If it fails, we initiate a hostname
       lookup and print out an informative message on the statusbar. */
    if(uiplib_ipaddrconv(host, &addr) == 0) {
        uip_ipaddr_t *addrptr;
        if(resolv_lookup(host, &addrptr) != RESOLV_STATUS_CACHED) {
            resolv_query(host);
            show_statustext("Resolving host...");
            return;
        }
        uip_ipaddr_copy(&addr, addrptr);
    }
#else /* UIP_UDP */
    uiplib_ipaddrconv(host, &addr);
#endif /* UIP_UDP */

    /* The hostname we present in the hostname table, so we send out the
       initial GET request. */
    if(webclient_get(host, 80, file) == 0) {
        show_statustext("Out of memory error");
    } else {
        show_statustext("Connecting...");
    }
    redraw_window();
}
Пример #28
0
void edit_side(int source,int smer)
  {
  TSTENA *p;
  CTL3D b1,b2,b3;
  char s[200];

  p=&mapa.sidedef[source][smer];
  memcpy(&b1,def_border(1,0),sizeof(CTL3D));
  memcpy(&b2,def_border(5,WINCOLOR),sizeof(CTL3D));
  memcpy(&b3,def_border(6,WINCOLOR),sizeof(CTL3D));
  default_font=vga_font;
  memcpy(f_default,flat_color(0x0000),sizeof(charcolors));
  sprintf(s,"Vlastnosti stˆn, sektor %d stˆna %d",source,smer);
  def_window(400,324,s);
  waktual->x=125;
  waktual->y=60;
  waktual->modal=1;
  define(CANCEL_BUTT,10,5,80,20,2,button,"Zru¨it");property(&b1,NULL,NULL,WINCOLOR);
    on_change(close_current);
  define(OK_BUTT,190,5,80,20,2,button,"Ok");property(&b1,NULL,NULL,WINCOLOR);
    on_change(edit_side_ok);
  define(3400,100,5,80,20,2,button,"P©edvolba");property(&b1,NULL,NULL,WINCOLOR);
    on_change(edit_side_predvolba_1);on_exit(edit_side_predvolba_2);
  define(10,5,20,300,35,0,label,"Prim rn¡:       Sekundarn¡:       Oblouk:");property(&b3,NULL,NULL,WINCOLOR);
  define(20,10,35,90,12,0,str_line,side_names);property(&b2,NULL,NULL,WINCOLOR);c_default(p->prim);
    on_enter(string_list_sup);
  define(30,110,35,90,12,0,str_line,side_names);property(&b2,NULL,NULL,WINCOLOR);c_default(p->sec);
    on_enter(string_list_sup);
  define(40,210,35,90,12,0,str_line,oblouky);property(&b2,NULL,NULL,WINCOLOR);c_default(p->oblouk & 0x0f);
    on_enter(string_list_sup);
  define(-1,5,60,250,12,0,label,"Animace primarn¡:");
  define(-1,5,75,250,12,0,label,"Animace sekundarn¡:");
  define(-1,5,90,250,12,0,label,"X pozice sek. stˆny:");
  define(-1,5,105,250,12,0,label,"Y pozice sek. stˆny:");
  define(-1,5,120,250,12,0,label,"C¡lov˜ sektor ud losti:");
  define(-1,5,135,250,12,0,label,"C¡lov  stˆna ud losti:");
  define(-1,5,150,250,12,0,label,"Popis akce:");
  define(-1,260,60,100,12,0,label,"Aplikuj na stˆnu:");
  define(50,200,60,50,10,0,input_line,10,1,16,"%6d");property(&b2,NULL,NULL,WINCOLOR);
   set_default(strs((p->prim_anim & 0xf)+1));on_exit(test_int);
  define(60,200,75,50,10,0,input_line,10,1,16,"%6d");property(&b2,NULL,NULL,WINCOLOR);
   set_default(strs((p->sec_anim & 0xf)+1));on_exit(test_int);
  define(70,200,90,50,10,0,input_line,10,0,499,"%6d");property(&b2,NULL,NULL,WINCOLOR);
   set_default(strs(p->xsec<<1));on_exit(test_int);
  define(80,200,105,50,10,0,input_line,10,0,511,"%6d");property(&b2,NULL,NULL,WINCOLOR);
   set_default(strs(p->ysec<<1));on_exit(test_int);
  define(90,200,120,50,10,0,input_line,10,0,65535,"%6d");property(&b2,NULL,NULL,WINCOLOR);
   set_default(strs(p->sector_tag));on_exit(test_int);
  define(100,200,135,50,10,0,str_line,steny2);property(&b2,NULL,NULL,WINCOLOR);
   c_default(p->side_tag & 0x3);on_enter(string_list_sup);
  define(110,100,150,150,10,0,str_line,actions);property(&b2,NULL,NULL,WINCOLOR);
   on_enter(string_list_sup); c_default(p->action);
  define(120,10,175,150,10,0,check_box,side_flgs[0]);
  define(130,10,187,150,10,0,check_box,side_flgs[1]);
  define(140,10,199,150,10,0,check_box,side_flgs[2]);
  define(150,10,211,150,10,0,check_box,side_flgs[3]);
  define(160,10,223,150,10,0,check_box,side_flgs[4]);
  define(170,10,235,150,10,0,check_box,side_flgs[5]);
  define(180,10,247,150,10,0,check_box,side_flgs[6]);
  define(190,10,259,150,10,0,check_box,side_flgs[7]);
  define(200,190,175,100,10,0,check_box,side_flgs[8]);
  define(210,190,187,100,10,0,check_box,side_flgs[9]);
  define(220,190,199,100,10,0,check_box,side_flgs[10]);
  define(230,190,211,150,10,0,check_box,side_flgs[11]);
  define(240,190,223,150,10,0,check_box,side_flgs[12]);
  define(250,190,235,150,10,0,check_box,side_flgs[13]);
  define(260,190,247,150,10,0,check_box,side_flgs[14]);
  define(270,190,259,150,10,0,check_box,side_flgs[15]);
  define(280,10,271,75,10,0,check_box,side_flgs[16]);
  define(290,10,283,75,10,0,check_box,side_flgs[17]);
  define(300,190,271,150,10,0,check_box,side_flgs[18]);
  define(310,10,295,75,11,0,check_box,side_flgs[19]);
  define(400,290,80,100,10,0,check_box,"Severn¡");
  define(410,290,95,100,10,0,check_box,"V˜chodn¡");
  define(420,290,110,100,10,0,check_box,"Ji‘n¡");
  define(430,290,125,100,10,0,check_box,"Z padn¡");
  define(340,290,150,100,15,0,button2,"V¡ce >>");on_change(action_flags);
  define(350,290,150,100,15,0,value_store,4);c_default(p->flags & 0xfff00000);
  define(360,290,150,100,15,0,value_store,4);c_default(source);
  define(370,290,150,100,15,0,value_store,4);c_default(smer);
  define(-1,5,20,60,10,1,label,"Lclip:");
  define(440,30,35,30,12,1,input_line,3,0,255,"%3d");
   property(&b2,NULL,NULL,WINCOLOR);
  set_default(strs(p->lclip));on_exit(test_int);
  define(450,10,220,30,30,1,radio_butts,3,"-","\x4","\x6");c_default((p->oblouk>>5) & 0x3);
   property(NULL,icones,NULL,WINCOLOR);
  define(460,10,175,80,12,1,button,"V˜klenek");on_change(edit_vyklenek_start);
  define(470,190,283,150,10,0,check_box,"Lze polo‘it za");c_default(p->oblouk>>7);
  define(480,10,307,75,10,0,check_box,"P©edsunout s.");c_default(p->side_tag>>7);
  fill_bit_fields(0,120,p->flags,20); if (source)
  fill_bit_fields(0,400,1<<smer,4); else fill_bit_fields(0,400,0xf,4);
  set_enable(0,3400,source!=0);
  set_enable(0,460,source!=0);
  redraw_window();
  }
Пример #29
0
int main(int argc, char **argv)
{
    XEvent event;

    config_init();
    parse_cli_options(argc, argv);
    config_read();

    mixer_init(config.mixer_device, config.verbose, (const char **)config.exclude_channel);
    mixer_set_channel(0);

    display = XOpenDisplay(config.display_name);
    if (display == NULL) {
	const char *name;

	if (config.display_name) {
	    name = config.display_name;
	} else {
	    name = getenv("DISPLAY");
	    if (name == NULL) {
		fprintf(stderr, "wmix:error: Unable to open display, variable $DISPLAY not set\n");
		return EXIT_FAILURE;
	    }
	}
	fprintf(stderr, "wmix:error: Unable to open display \"%s\"\n", name);
	return EXIT_FAILURE;
    }
    display_width = (float)DisplayWidth(display, DefaultScreen(display)) / 4.0;
    display_height = (float)DisplayHeight(display, DefaultScreen(display)) / 2.0;

    dockapp_init(display);
    new_window("wmix", 64, 64);
    new_osd(DisplayWidth(display, DefaultScreen(display)) - 200, 60);

    if (config.mmkeys)
	    mmkey_install(display);

    config_release();

    blit_string("wmix " VERSION);
    scroll_text(3, 4, 57, true);
    ui_update();

    /* add click regions */
    add_region(1, 37, 36, 25, 25);	/* knob */
    add_region(2, 4, 42, 27, 15);	/* balancer */
    add_region(3, 2, 26, 7, 10);	/* previous channel */
    add_region(4, 10, 26, 7, 10);	/* next channel */
    add_region(5, 39, 14, 20, 7);	/* mute toggle */
    add_region(6, 4, 14, 13, 7);	/* rec toggle */
    add_region(10, 3, 4, 56, 7);	/* re-scroll current channel name */

    /* setup up/down signal handler */
    create_pid_file();
    signal(SIGUSR1, (void *) signal_catch);
    signal(SIGUSR2, (void *) signal_catch);

    while (true) {
	if (button_pressed || slider_pressed || (XPending(display) > 0)) {
	    XNextEvent(display, &event);
	    switch (event.type) {
		case KeyPress:
		    if (key_press_event(&event.xkey))
			idle_loop = 0;
		    break;
		case Expose:
		    redraw_window();
		    break;
		case ButtonPress:
		    button_press_event(&event.xbutton);
		    idle_loop = 0;
		    break;
		case ButtonRelease:
		    button_release_event(&event.xbutton);
		    idle_loop = 0;
		    break;
		case MotionNotify:
		    /* process cursor change, or drag events */
		    motion_event(&event.xmotion);
		    idle_loop = 0;
		    break;
		case LeaveNotify:
		    /* go back to standard cursor */
		    if ((!button_pressed) && (!slider_pressed))
			set_cursor(NORMAL_CURSOR);
		    break;
		case DestroyNotify:
		    XCloseDisplay(display);
		    return EXIT_SUCCESS;
		default:
		    break;
	    }
	} else {
	    usleep(100000);
	    scroll_text(3, 4, 57, false);
	    /* rescroll message after some delay */
	    if (idle_loop++ > 256) {
		scroll_text(3, 4, 57, true);
		idle_loop = 0;
	    }
	    /* get rid of OSD after a few seconds of idle */
	    if ((idle_loop > 15) && osd_mapped() && !button_pressed) {
		unmap_osd();
		idle_loop = 0;
	    }
	    if (mixer_is_changed())
		ui_update();
	}
    }
    return EXIT_SUCCESS;
}
Пример #30
0
static void edit_draw(void *data)
{
    EDITINFO *einf = (EDITINFO *) data;

    redraw_window(einf->info);
}