Revision 0c4c29edf289fc23cd0676ec591c717cd495afae authored by Johannes Huber on 07 May 2014, 11:43:58 UTC, committed by Brad King on 07 May 2014, 19:03:05 UTC
Drop the icon file extension. This fixes the desktop file validation message: "CMakeSetup32.png" for key "Icon" in group "Desktop Entry" is an icon name with an extension, but there should be no extension as described in the Icon Theme Specification if the value is not an absolute path Applied-by: Rolf Eike Beer <eike@sf-mail.de>
1 parent 9cb4677
HelloWorldX11.cxx
/*** START MAIN.H ***/
/* http://www.geocities.com/jeff_louie/x11/helloworld.htm* */
/*
* main.h
* TestX
*
* Created by Jeff Louie on Tue Feb 03 2004.
* Copyright (c) 2004 __MyCompanyName__. All rights reserved.
*
*/
#ifndef MAIN_H
#define MAIN_H 1
#include <iostream>
#include <stdlib.h>
/* include the X library headers */
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xos.h>
class Main {
public:
// constructor
Main(int argc, char * const argv[]);
//virtual ~Main();
private:
/* here are our X variables */
Display *dis;
int screen;
Window win;
GC gc;
/* here are our X routines declared! */
void init_x();
void close_x();
void redraw();
int delay(int i);
};
#endif
/*** END MAIN.H ***/
/*** START MAIN.CPP ***/
// modified from Brian Hammond's Howdy program at
// http://www.insanityengine.com/doc/x11/xintro.html
// jeff louie 02.05.2004
int main (int argc, char * const argv[]) {
Main m(argc, argv);
return 0;
}
//Main::~Main() {;};
Main::Main (int argc, char * const argv[]) {
XEvent event; // XEvent declaration
KeySym key; // KeyPress Events
char text[255]; // char buffer for KeyPress Events
init_x();
// event loop
while(1) {
// get the next event and stuff it into our event variable.
// Note: only events we set the mask for are detected!
XNextEvent(dis, &event);
switch (event.type) {
int x;
int y;
case Expose:
if (event.xexpose.count==0) {
redraw();
}
break;
case KeyPress:
if (XLookupString(&event.xkey,text,255,&key,0)==1) {
// use the XLookupString routine to convert the invent
// KeyPress data into regular text. Weird but necessary...
if ((text[0]=='q') || (text[0]=='Q')) {
close_x();
}
else {
// echo key press
printf("You pressed the %c key!\n",text[0]);
}
}
break;
case ButtonPress:
// get cursor position
x= event.xbutton.x;
y= event.xbutton.y;
strcpy(text,"X is FUN!");
XSetForeground(dis,gc,rand()%event.xbutton.x%255);
// draw text at cursor
XDrawString(dis,win,gc,x,y, text, strlen(text));
break;
default:
printf("Unhandled event.\n");
}
}
}
void Main::init_x() {
unsigned long black,white;
dis=XOpenDisplay(NULL);
screen=DefaultScreen(dis);
black=BlackPixel(dis,screen),
white=WhitePixel(dis, screen);
win=XCreateSimpleWindow(dis,DefaultRootWindow(dis),0,0,
300, 300, 5,black, white);
XSetStandardProperties(dis,win,"Hello World","Hi",None,NULL,0,NULL);
XSelectInput(dis, win, ExposureMask|ButtonPressMask|KeyPressMask);
// get Graphics Context
gc=XCreateGC(dis, win, 0,0);
XSetBackground(dis,gc,white);
XSetForeground(dis,gc,black);
XClearWindow(dis, win);
XMapRaised(dis, win);
};
void Main::close_x() {
XFreeGC(dis, gc);
XDestroyWindow(dis,win);
XCloseDisplay(dis);
exit(1);
};
void Main::redraw() {
XClearWindow(dis, win);
};
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...