Podstrony
- Strona startowa
- Shakespeare, William Julius Caesar
- Quinn Julia Tylko ta noc (2)
- Pohl Frederik Kroniki Heechow
- Stephen King Marzenia i Koszmary 2 (3)
- Brust Steven Yendi (3)
- Grisham John Bractwo (4)
- FL ActionScript Ref
- sw faustyna kowalska dziennicze
- Jan Od Krzyża, Âśw. Dzieła
- Dickens Charles Klub Pickwicka tom II (2)
- zanotowane.pl
- doc.pisz.pl
- pdf.pisz.pl
- kuchniabreni.xlx.pl
[ Pobierz całość w formacie PDF ]
.Miejsce na pióra jest przydzielane na wstępie, aby przyspieszyćrysowanie (w przeciwnym przypadku musielibyśmy tworzyć nowyGdkGC przy każdym przerysowaniu ekranu).Pióra tworzymy w funkcjio nazwie PobierzPioro, dzięki czemu kod jest czytelniejszy, niż gdybyfunkcja nosiła nazwę PobierzGdkGC./** Plik: wykres.c* Autor: Eric Harlow***/#include#include "urzadzenie.h"void RysujUrzadzenie (GtkWidget *obszar_rys, char *szName,GdkGC *pen, int bSrednia);int WcisnietoPrzyciskSiec ();int WcisnietoPrzyciskSiecSrednia ();int WcisnietoPrzyciskCPU15 ();int WcisnietoPrzyciskCPU5 ();int WcisnietoPrzyciskCPU1 ();void Przerysuj ();GtkWidget *obszar_rys;typedef struct {Część III Rysowanie, kolor i GDK276GdkDrawable *piksmapa;GdkGC *gc;} typGrafika;static typGrafika *g;static GdkGC *czarnePioro = NULL;static GdkGC *czerwonePioro = NULL;static GdkGC *niebieskiePioro = NULL;static GdkGC *zielonePioro = NULL;static GdkGC *szarePioro = NULL;/** NowaGrafika** Tworzy nowy element danych graficznych, przechowujący piksmapę* i kontekst gc.*/typGrafika *NowaGrafika (){typGrafika *gfx;/* --- Przydzielamy pamięć --- */gfx = (typGrafika *) g_malloc (sizeof (typGrafika));/* --- Inicjujemy --- */gfx->gc = NULL;gfx->piksmapa = NULL;/* --- Zwracamy element gotowy do użycia --- */return (gfx);}/** PobierzPioro** Zwraca pióro na podstawie przekazanej struktury GdkColor* Pióro (po prostu GdkGC) jest tworzone i zwracane w postaci* gotowej do użycia.*/GdkGC *PobierzPioro (GdkColor *c){277GdkGC *gc;/* --- Tworzymy kontekst gc --- */gc = gdk_gc_new (g->piksmapa);/* --- Ustawiamy kolor pierwszego planu --- */gdk_gc_set_foreground (gc, c);/* --- Zwracamy kontekst gc --- */return (gc);}/** NowyKolor** Tworzymy kolor na podstawie listy parametrów i przydzielamy* mu miejsce*/GdkColor *NowyKolor (long czerwony, long zielony, long niebieski){/* --- Tworzymy strukturę koloru --- */GdkColor *c = (GdkColor *) g_malloc (sizeof (GdkColor));/* --- Wypełniamy ją --- */c->red = czerwony;c->green = zielony;c->blue = niebieski;gdk_color_alloc (gdk_colormap_get_system (), c);return (c);}/** UaktualnijIPrzerysuj** Procedura sprawdza najnowsze statystyki obciążenia sieci* oraz procesora i uaktualnia ekran na podstawie tych* informacji*/gint UaktualnijIPrzerysuj (gpointer dane){/* --- Pobieramy informacje o sieci --- */Część III Rysowanie, kolor i GDK278PobierzDaneOPakietach ();/* --- Pobieramy informacje o procesorze --- */PobierzDaneOCPU ();/* --- Przerysowujemy ekran --- */Przerysuj ();return (1);}/** Przerysuj** Uaktualnia ekran na podstawie najnowszych danych*/void Przerysuj (){GdkRectangle uakt_prostokat;/* --- czyścimy piksmapę, aby móc na niej rysować --- */gdk_draw_rectangle (g->piksmapa,obszar_rys->style->white_gc,TRUE,0, 0,obszar_rys->allocation.width,obszar_rys->allocation.height);/* --- Jeśli użytkownik chce widzieć rzeczywisteobciążenie sieci.--- */if (WcisnietoPrzyciskSiec ()) {RysujUrzadzenie (obszar_rys, "eth0:", szarePioro, 0);}/* -- Jeśli użytkownik chce widzieć średnieobciążenie sieci.-- */if (WcisnietoPrzyciskSiecSrednia ()) {RysujUrzadzenie (obszar_rys, "eth0:", czarnePioro, 1);}/* -- Jeśli użytkownik chce widzieć średnie obciążenieprocesora w ostatnich 15 minutach.-- */if (WcisnietoPrzyciskCPU15 ()) {RysujUrzadzenie (obszar_rys, "cpu15", niebieskiePioro, 0);}279/* -- Jeśli użytkownik chce widzieć średnie obciążenieprocesora w ostatnich 5 minutach.-- */if (WcisnietoPrzyciskCPU5 ()) {RysujUrzadzenie (obszar_rys, "cpu5", zielonePioro, 0);}/* -- Jeśli użytkownik chce widzieć średnie obciążenieprocesora w ostatniej minucie.-- */if (WcisnietoPrzyciskCPU1 ()) {RysujUrzadzenie (obszar_rys, "cpu1", czerwonePioro, 0);}/* --- Uaktualniamy ekran drugoplanową piksmapą --- */uakt_prostokat.x = 0;uakt_prostokat.y = 0;uakt_prostokat.width = obszar_rys->allocation.width;uakt_prostokat.height = obszar_rys->allocation.height;gtk_widget_draw (obszar_rys, &uakt_prostokat);}/** RysujUrzadzenie** Rysuje wykres z informacjami o urządzeniu** obszar_rys - kontrolka* szNazwa - nazwa monitorowanego urządzenia* pioro - GC z informacjami o kolorze* bSrednia - Znacznik uśredniania
[ Pobierz całość w formacie PDF ]