Anzeige:
Ergebnis 1 bis 3 von 3

Thema: xlib Text auf Desktop

  1. #1
    Registrierter Benutzer
    Registriert seit
    15.08.2005
    Beiträge
    12

    Question xlib Text auf Desktop

    Hi,

    ich beschäftige mich zur Zeit mit der XLib unter DSL (DammSmallLinux), dazu habe ich angefangen mir von der Seite www.pronix.de
    das OpenBook "Linux-Unix-Programmierung" (Kapitel 13) durchzulesen.
    Nun bin ich soweit das ich ein Fenster erstellen kann und das in dem Fenster ein Text erscheint.
    Mein Code sieht dann so aus:

    Code:
    /* hallo.c */
    #include <stdio.h>
    #include <stdlib.h>
    #include <X11/keysym.h>
    #include <X11/Xlib.h>
    #include <X11/Xutil.h>
    
    static int create_window (void);
    
    /* Globale Variablen */
    static Display *display;
    static int screen;
    static int depth;
    static Window win;
    
    /* Funktion erzeugt ein Fenster */
    static int create_window (void) {
    	char *window_name = "Einfaches Fenster - hallo";
    	char *icon_name = "window";
    	static XSizeHints size_hints;
    	Window rootwin;
    
    	/* X-Sitzung oeffnen */
    	display = XOpenDisplay (NULL);
    
    	/* Standardbildschirm eines Displays */
    	screen = XDefaultScreen (display);
    
    	rootwin = RootWindow (display, screen);
    	win = XCreateSimpleWindow ( display, rootwin, 1, 1, 500, 500, 5, 
    							BlackPixel (display, screen),WhitePixel (display, screen) );
    
    	size_hints.flags = PSize | PMinSize | PMaxSize;
    	size_hints.min_width =  500;
    	size_hints.max_width =  500;
    	size_hints.min_height = 500;
    	size_hints.max_height = 500;
    	XSetStandardProperties ( display, win, window_name, icon_name, None, 0, 0, &size_hints );
    
    	/* Fenster anzeigen */
    	XMapWindow (display, win);
    	return 1;
    }
    
    int main (int argc, char **argv) {
    	Font font;
    	GC mygc;
    	
    	
    	create_window ();
    
    	mygc = XCreateGC (display, win , 0, 0);
    		
    	while(1){
    		XDrawString (display, win, mygc, 10, 10, "Hallo", 5);
    		XFlush(display);
    		sleep(1);
    	}
    
    	XDestroyWindow(display, win);
    	XCloseDisplay (display);	
    }

    Nun möchte ich wissen wie ich den Text direkt auf den Desktop schreiben kann, also ohne ein sichtbares Fenster.
    Ich hab mir folgendes überlegt:
    + entweder gibt es eine Funktion mit der ich einen Text auf dem Desktop anzeigen lassen kann
    + oder ich muss ein Fenster erstellen das unsichtbar ist.

    Mein Ziel ist es irgenwann mal ein Programm wie "torsmo" zu haben.
    Bei diesem Programm werden ja Systeminformation direkt auf den Desktop geschrieben und dann alle paar Sekunden aktualisiert.

    Ich hoffe Ihr könnt mir helfen....

    Gruß kurm_de

  2. #2
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Schon probiert das Fenster "rootwin" als Parameter bie XDrawString zu verwenden?

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  3. #3
    Registrierter Benutzer
    Registriert seit
    15.08.2005
    Beiträge
    12
    hat funktioniert, danke.
    hätte nicht gedacht das es so einfach ist

    kurm_de

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •