Esempio n. 1
0
void App::wm_create(HWND *window){
	hwnd = *window;
	//kontrolki
	hctrl[0]=CreateWindowEx(WS_EX_CLIENTEDGE,WC_EDIT,"",WS_CHILD|WS_VISIBLE|ES_AUTOHSCROLL,0,20,window_w,20,hwnd,0,*hInst,0); //wiersz poleceñ
	hctrl[1]=CreateWindowEx(0,WC_STATIC,"",WS_CHILD|WS_VISIBLE|SS_CENTER|SS_CENTERIMAGE,0,0,window_w,20,hwnd,0,*hInst,0); //konsola
	hctrl[2]=CreateWindowEx(0,WC_BUTTON,"Przechwytywanie klawiszy [F11]",WS_CHILD|WS_VISIBLE|BS_CHECKBOX,25,40,180,20,hwnd,(HMENU)1,*hInst,0);
	//groupbox1
	hctrl[3]=CreateWindowEx(0,WC_BUTTON,"Akordy",WS_CHILD|WS_VISIBLE|BS_GROUPBOX,10,60,window_w-20,150,hwnd,(HMENU)0,*hInst,0);
	for(int i=0; i<12; i++){
		hctrl[4+i]=CreateWindowEx(0,WC_BUTTON,"",WS_CHILD|WS_VISIBLE,20+(i%3)*60,80+(i/3)*30,60,30,hwnd,(HMENU)(2+i),*hInst,0);
	}
	//groupbox2
	hctrl[16]=CreateWindowEx(0,WC_BUTTON,"Rodzaj akordu",WS_CHILD|WS_VISIBLE|BS_GROUPBOX,10,215,window_w-20,140,hwnd,(HMENU)0,*hInst,0);
	hctrl[17]=CreateWindowEx(0,WC_BUTTON,"Pojedynczy dŸwiêk",WS_CHILD|WS_VISIBLE|BS_RADIOBUTTON,30,230,160,20,hwnd,(HMENU)14,*hInst,0);
	hctrl[18]=CreateWindowEx(0,WC_BUTTON,"Power chord",WS_CHILD|WS_VISIBLE|BS_RADIOBUTTON,30,250,160,20,hwnd,(HMENU)15,*hInst,0);
	hctrl[19]=CreateWindowEx(0,WC_BUTTON,"Akord molowy",WS_CHILD|WS_VISIBLE|BS_RADIOBUTTON,30,270,160,20,hwnd,(HMENU)16,*hInst,0);
	hctrl[20]=CreateWindowEx(0,WC_BUTTON,"Akord durowy",WS_CHILD|WS_VISIBLE|BS_RADIOBUTTON,30,290,160,20,hwnd,(HMENU)17,*hInst,0);
	hctrl[21]=CreateWindowEx(0,WC_BUTTON,"Akord molowy septymowy",WS_CHILD|WS_VISIBLE|BS_RADIOBUTTON,30,310,160,20,hwnd,(HMENU)18,*hInst,0);
	hctrl[22]=CreateWindowEx(0,WC_BUTTON,"Akord durowy septymowy",WS_CHILD|WS_VISIBLE|BS_RADIOBUTTON,30,330,160,20,hwnd,(HMENU)19,*hInst,0);
	//kapodaster
	hctrl[23]=CreateWindowEx(0,WC_STATIC,"Kapodaster",WS_CHILD|WS_VISIBLE|SS_CENTER|SS_CENTERIMAGE,55,360,110,25,hwnd,0,*hInst,0);
	hctrl[24]=CreateWindowEx(0,WC_BUTTON,"-1",WS_CHILD|WS_VISIBLE,30,360,25,25,hwnd,(HMENU)20,*hInst,0);
	hctrl[25]=CreateWindowEx(0,WC_BUTTON,"+1",WS_CHILD|WS_VISIBLE,165,360,25,25,hwnd,(HMENU)21,*hInst,0);
	hctrl[26]=CreateWindowEx(0,WC_BUTTON,"-12",WS_CHILD|WS_VISIBLE,5,360,25,25,hwnd,(HMENU)22,*hInst,0);
	hctrl[27]=CreateWindowEx(0,WC_BUTTON,"+12",WS_CHILD|WS_VISIBLE,190,360,25,25,hwnd,(HMENU)23,*hInst,0);
	//g³oœnoœæ
	hctrl[28]=CreateWindowEx(0,WC_STATIC,"G³oœnoœæ",WS_CHILD|WS_VISIBLE|SS_CENTER|SS_CENTERIMAGE,60,390,100,25,hwnd,0,*hInst,0);
	hctrl[29]=CreateWindowEx(0,WC_BUTTON,"-",WS_CHILD|WS_VISIBLE,30,390,25,25,hwnd,(HMENU)24,*hInst,0);
	hctrl[30]=CreateWindowEx(0,WC_BUTTON,"+",WS_CHILD|WS_VISIBLE,165,390,25,25,hwnd,(HMENU)25,*hInst,0);
	//haki
	hExe = GetModuleHandle(NULL);
	hHookkb = SetWindowsHookEx(WH_KEYBOARD_LL, hpkb, hExe, 0);
	//ustawienia
	load_config();
	//ustawienia pocz¹tkowe
	checkbox1_click(1);
	radiobutton1_click(2);
	kapodaster=0;
	capo_add(0);
	volume=100;
	volume_add(0);
	//czcionki
	fontsize=13;
	fontface="MS Shell Dlg 2";
	for(int i=0; i<ctrls_num; i++){
		change_font(hctrl[i]);
	}
	SetFocus(hctrl[0]);
	//subclassing
	subclass(0);
	//midi init
	midi_device=midi_init();
	echo("wersja "+version);
}
Esempio n. 2
0
/*
 * XTerm escape sequences: ESC ] Ps;Pt BEL
 *       0 = change iconName/title
 *       1 = change iconName
 *       2 = change title
 *      46 = change logfile (not implemented)
 *      50 = change font
 *
 * rxvt extensions:
 *      10 = menu
 *      20 = bg pixmap
 *      39 = change default fg color
 *      49 = change default bg color
 */
void
xterm_seq (int op, char *str)
{
  int changed = 0;

  assert (str != NULL);
  switch (op)
    {
    case XTerm_name:
      set_title (str);		/* drop */
    case XTerm_iconName:
      set_iconName (str);
      break;
    case XTerm_title:
      set_title (str);
      break;
    case XTerm_Menu:
      menubar_dispatch (str);
      break;
    case XTerm_Pixmap:
#ifdef XPM_BACKGROUND
      if (*str != ';')
	set_bgPixmap (str);

      while ((str = strchr (str, ';')) != NULL)
	{
	  str++;
	  changed += scale_pixmap (str);
	}
      if (changed)
	{
	  resize_pixmap ();
	  scr_touch ();
	}
#endif /* XPM_BACKGROUND */
      break;

    case XTerm_restoreFG:
      set_window_color (fgColor, str);
      break;
    case XTerm_restoreBG:
      set_window_color (bgColor, str);
      break;
    case XTerm_logfile:
      break;
    case XTerm_font:
      change_font (0, str);
      break;
    }
}
Esempio n. 3
0
/*{{{ Create_Windows() - Open and map the window */
static void
Create_Windows (int argc, char *argv[])
{
  Cursor cursor;
  XClassHint classHint;
  XWMHints wmHint;
  int i, x, y, flags;
  unsigned int width, height;

  /*
   * grab colors before netscape does
   */
  for (i = 0;
       i < (Xdepth <= 2 ? 2 : NRS_COLORS);
       i++)
    {
      const char *const msg = "can't load color \"%s\"";
      XColor xcol;

      if (!rs_color[i])
	continue;

      if (!XParseColor (Xdisplay, Xcmap, rs_color[i], &xcol) ||
	  !XAllocColor (Xdisplay, Xcmap, &xcol))
	{
	  print_error (msg, rs_color[i]);
	  rs_color[i] = def_colorName[i];
	  if (!rs_color[i])
	    continue;
	  if (!XParseColor (Xdisplay, Xcmap, rs_color[i], &xcol) ||
	      !XAllocColor (Xdisplay, Xcmap, &xcol))
	    {
	      print_error (msg, rs_color[i]);
	      switch (i)
		{
		case fgColor:
		case bgColor:
		  /* fatal: need bg/fg color */
		  print_error ("aborting");
		  exit (EXIT_FAILURE);
		  break;
#ifndef NO_CURSORCOLOR
		case cursorColor:
		  xcol.pixel = PixColors[bgColor];
		  break;
		case cursorColor2:
		  xcol.pixel = PixColors[fgColor];
		  break;
#endif /* NO_CURSORCOLOR */
		default:
		  xcol.pixel = PixColors[bgColor];	/* None */
		  break;
		}
	    }
	}
      PixColors[i] = xcol.pixel;
    }

#ifndef NO_CURSORCOLOR
  if (Xdepth <= 2 || !rs_color[cursorColor])
    PixColors[cursorColor] = PixColors[bgColor];
  if (Xdepth <= 2 || !rs_color[cursorColor2])
    PixColors[cursorColor2] = PixColors[fgColor];
#endif /* NO_CURSORCOLOR */

#ifndef NO_BOLDUNDERLINE
  if (Xdepth <= 2 || !rs_color[colorBD])
    PixColors[colorBD] = PixColors[fgColor];
  if (Xdepth <= 2 || !rs_color[colorUL])
    PixColors[colorUL] = PixColors[fgColor];
#endif /* NO_BOLDUNDERLINE */

  /*
   * get scrollBar/menuBar shadow colors
   *
   * The calculations of topShadow/bottomShadow values are adapted
   * from the fvwm window manager.
   */
#ifndef XTERM_SCROLLBAR
  if (Xdepth <= 2)		/* Monochrome */
    {
      PixColors[scrollColor] = PixColors[bgColor];
      PixColors[topShadowColor] = PixColors[fgColor];
      PixColors[bottomShadowColor] = PixColors[fgColor];
    }
  else
    {
      XColor xcol, white;

      /* bottomShadowColor */
      xcol.pixel = PixColors[scrollColor];
      XQueryColor (Xdisplay, Xcmap, &xcol);

      xcol.red = ((xcol.red) / 2);
      xcol.green = ((xcol.green) / 2);
      xcol.blue = ((xcol.blue) / 2);

      if (!XAllocColor (Xdisplay, Xcmap, &xcol))
	{
	  print_error ("can't allocate %s", "bottomShadowColor");
	  xcol.pixel = PixColors[minColor];
	}
      PixColors[bottomShadowColor] = xcol.pixel;

      /* topShadowColor */
      white.pixel = WhitePixel (Xdisplay, Xscreen);
      XQueryColor (Xdisplay, Xcmap, &white);

      xcol.pixel = PixColors[scrollColor];
      XQueryColor (Xdisplay, Xcmap, &xcol);

#ifndef min
#define min(a,b) (((a)<(b)) ? (a) : (b))
#define max(a,b) (((a)>(b)) ? (a) : (b))
#endif
      xcol.red = max ((white.red / 5), xcol.red);
      xcol.green = max ((white.green / 5), xcol.green);
      xcol.blue = max ((white.blue / 5), xcol.blue);

      xcol.red = min (white.red, (xcol.red * 7) / 5);
      xcol.green = min (white.green, (xcol.green * 7) / 5);
      xcol.blue = min (white.blue, (xcol.blue * 7) / 5);

      if (!XAllocColor (Xdisplay, Xcmap, &xcol))
	{
	  print_error ("can't allocate %s", "topShadowColor");
	  xcol.pixel = PixColors[whiteColor];
	}
      PixColors[topShadowColor] = xcol.pixel;
    }
#endif /* XTERM_SCROLLBAR */

  szHint.base_width = (2 * TermWin_internalBorder +
		       (Options & Opt_scrollBar ? SB_WIDTH : 0));
  szHint.base_height = (2 * TermWin_internalBorder);

  flags = (rs_geometry ?
	   XParseGeometry (rs_geometry, &x, &y, &width, &height) : 0);

  if (flags & WidthValue)
    {
      szHint.width = width;
      szHint.flags |= USSize;
    }
  if (flags & HeightValue)
    {
      szHint.height = height;
      szHint.flags |= USSize;
    }

  TermWin.ncol = szHint.width;
  TermWin.nrow = szHint.height;

  change_font (1, NULL);

  if (flags & XValue)
    {
      if (flags & XNegative)
	{
	  x += (DisplayWidth (Xdisplay, Xscreen)
		- (szHint.width + TermWin_internalBorder));
	  szHint.win_gravity = NorthEastGravity;
	}
      szHint.x = x;
      szHint.flags |= USPosition;
    }
  if (flags & YValue)
    {
      if (flags & YNegative)
	{
	  y += (DisplayHeight (Xdisplay, Xscreen)
		- (szHint.height + TermWin_internalBorder));
	  szHint.win_gravity = (szHint.win_gravity == NorthEastGravity ?
				SouthEastGravity : SouthWestGravity);
	}
      szHint.y = y;
      szHint.flags |= USPosition;
    }

  /* parent window - reverse video so we can see placement errors
   * sub-window placement & size in resize_subwindows()
   */

  TermWin.parent = XCreateSimpleWindow (Xdisplay, Xroot,
					szHint.x, szHint.y,
					szHint.width, szHint.height,
					BORDERWIDTH,
					PixColors[bgColor],
					PixColors[fgColor]);

  xterm_seq (XTerm_title, rs_title);
  xterm_seq (XTerm_iconName, rs_iconName);
  /* ignore warning about discarded `const' */
  classHint.res_name = rs_name;
  classHint.res_class = APL_CLASS;
  wmHint.input = True;
  wmHint.initial_state = (Options & Opt_iconic ? IconicState : NormalState);
  wmHint.flags = (InputHint | StateHint);

  XSetWMProperties (Xdisplay, TermWin.parent, NULL, NULL, argv, argc,
		    &szHint, &wmHint, &classHint);

  XSelectInput (Xdisplay, TermWin.parent,
		(KeyPressMask | FocusChangeMask |
		 StructureNotifyMask | VisibilityChangeMask)
    );

  /* vt cursor: Black-on-White is standard, but this is more popular */
  TermWin_cursor = XCreateFontCursor (Xdisplay, XC_xterm);
  {
    XColor fg, bg;
    fg.pixel = PixColors[fgColor];
    XQueryColor (Xdisplay, Xcmap, &fg);
    bg.pixel = PixColors[bgColor];
    XQueryColor (Xdisplay, Xcmap, &bg);
    XRecolorCursor (Xdisplay, TermWin_cursor, &fg, &bg);
  }

  /* cursor (menuBar/scrollBar): Black-on-White */
  cursor = XCreateFontCursor (Xdisplay, XC_left_ptr);

  /* the vt window */
  TermWin.vt = XCreateSimpleWindow (Xdisplay, TermWin.parent,
				    0, 0,
				    szHint.width, szHint.height,
				    0,
				    PixColors[fgColor],
				    PixColors[bgColor]);

  XDefineCursor (Xdisplay, TermWin.vt, TermWin_cursor);
  XSelectInput (Xdisplay, TermWin.vt,
		(ExposureMask | ButtonPressMask | ButtonReleaseMask |
		 Button1MotionMask | Button3MotionMask));

  XMapWindow (Xdisplay, TermWin.vt);
  XMapWindow (Xdisplay, TermWin.parent);

  /* scrollBar: size doesn't matter */
  scrollBar.win = XCreateSimpleWindow (Xdisplay, TermWin.parent,
				       0, 0,
				       1, 1,
				       0,
				       PixColors[fgColor],
				       PixColors[bgColor]);

  XDefineCursor (Xdisplay, scrollBar.win, cursor);
  XSelectInput (Xdisplay, scrollBar.win,
		(ExposureMask | ButtonPressMask | ButtonReleaseMask |
		 Button1MotionMask | Button2MotionMask | Button3MotionMask)
    );

#ifndef NO_MENUBAR
  /* menuBar: size doesn't matter */
  menuBar.win = XCreateSimpleWindow (Xdisplay, TermWin.parent,
				     0, 0,
				     1, 1,
				     0,
				     PixColors[fgColor],
				     PixColors[scrollColor]);
  XDefineCursor (Xdisplay, menuBar.win, cursor);
  XSelectInput (Xdisplay, menuBar.win,
		(ExposureMask | ButtonPressMask | ButtonReleaseMask |
		 Button1MotionMask)
    );
#endif /* NO_MENUBAR */

#ifdef XPM_BACKGROUND
  if (rs_backgroundPixmap != NULL)
    {
      char *p = rs_backgroundPixmap;
      if ((p = strchr (p, ';')) != NULL)
	{
	  p++;
	  scale_pixmap (p);
	}

      set_bgPixmap (rs_backgroundPixmap);
    }
#endif /* XPM_BACKGROUND */

  /* graphics context for the vt window */
  {
    XGCValues gcvalue;
    gcvalue.font = TermWin.font->fid;
    gcvalue.foreground = PixColors[fgColor];
    gcvalue.background = PixColors[bgColor];
    TermWin.gc = XCreateGC (Xdisplay, TermWin.vt,
			    GCForeground | GCBackground | GCFont,
			    &gcvalue);
  }
}