The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"кто нибудь есть, кто пишет под X Window?"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"кто нибудь есть, кто пишет под X Window?"
Сообщение от vvk emailИскать по авторуВ закладки on 19-Фев-03, 22:08  (MSK)
вот написал простейшую прогу - окошко. запускаю с консоли. но окно каким то образом оказывается чайлдом этой консоли. хотя я как бы не особо этого хотел.

например такой код:

#include <stdio.h>
#include <stdlib.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xos.h>
#include <X11/Xatom.h>
#include <X11/keysym.h>
/*Linux users will need to add -ldl to the Makefile to compile
*this example.
*/
Display *dis;
Window win;
XEvent report;
GC green_gc;
XColor green_col;
Colormap colormap;
/*
Try changing the green[] = below to a different color.
The color can also be from /usr/X11R6/lib/X11/rgb.txt, such as RoyalBlue4.
A # (number sign) is only needed when using hexadecimal colors.
*/
char green[] = "#00FF00";

int main() {
dis = XOpenDisplay(NULL);
win = XCreateSimpleWindow(dis, RootWindow(dis, 0), 1, 1, 500, 500, 0, BlackPixel (dis, 0), BlackPixel(dis, 0));
XMapWindow(dis, win);
colormap = DefaultColormap(dis, 0);
green_gc = XCreateGC(dis, win, 0, 0);
XParseColor(dis, colormap, green, &green_col);
XAllocColor(dis, colormap, &green_col);
XSetForeground(dis, green_gc, green_col.pixel);

XSelectInput(dis, win, ExposureMask | KeyPressMask | ButtonPressMask);

XDrawRectangle(dis, win, green_gc, 1, 1, 497, 497);
XDrawRectangle(dis, win, green_gc, 50, 50, 398, 398);
XFlush(dis);

while (1)  {
XNextEvent(dis, &report);
switch  (report.type) {
        case Expose:  
       fprintf(stdout, "I have been exposed.\n");
XDrawRectangle(dis, win, green_gc, 1, 1, 497, 497);
XDrawRectangle(dis, win, green_gc, 50, 50, 398, 398);
XFlush(dis);
break;
case KeyPress:
/*Close the program if q is pressed.*/
if (XLookupKeysym(&report.xkey, 0) == XK_q) {
exit(0);
}
break;
}
}

return 0;
}


ведь парентом указано RootWindow. А консолька то с чего вдруг root?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "RE: кто нибудь есть, кто пишет под X Window?"
Сообщение от vvk emailИскать по авторуВ закладки on 19-Фев-03, 22:20  (MSK)
ну даже вопрос наверное в том, что я создаю вечный цикл для обработки сообщений. и консолька естественно ждет завершения приложения. но это же фигня. как можно сделать приложение независимым? должны же быть какие то стандартные средства в xlib?


  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "RE: кто нибудь есть, кто пишет под X Window?"
Сообщение от vnp emailИскать по авторуВ закладки on 19-Фев-03, 22:58  (MSK)
>ну даже вопрос наверное в том, что я создаю вечный цикл для
>обработки сообщений. и консолька естественно ждет завершения приложения. но это же
>фигня. как можно сделать приложение независимым? должны же быть какие то
>стандартные средства в xlib?


Я вам еще не надоел?

Окошко ваше прнадлежит, разумеется, RootWindow. А вот процесс, в котором
оно исполняется -- ребенок шелла из консоли. Запустите его в фоне, и всех
делов.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "RE: кто нибудь есть, кто пишет под X Window?"
Сообщение от vvk emailИскать по авторуВ закладки on 19-Фев-03, 23:08  (MSK)

>Я вам еще не надоел?

не. я просто жутко рад, что есть кто то, способный ответить на все мои вопросы.

>Окошко ваше прнадлежит, разумеется, RootWindow. А вот процесс, в котором
>оно исполняется -- ребенок шелла из консоли. Запустите его в фоне, и
>всех
>делов.

в fork(), setsid() и т.д. по стандартному сценарию демонизации? я сейчас так и сделал. вроде рулит. но думал есть какие то xlib-специфичные штуки.


  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "RE: кто нибудь есть, кто пишет под X Window?"
Сообщение от XMan Искать по авторуВ закладки on 20-Фев-03, 01:15  (MSK)
Я пишу под X, но только на Qt. Так вот я не видел еще приложений, которые сами бы уходили в фон. Из консоли их можно пустить в фоне добавив в конце команды занк "&". Так любая программа в фон загоняется :)
  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "RE: кто нибудь есть, кто пишет под X Window?"
Сообщение от vvk emailИскать по авторуВ закладки on 20-Фев-03, 09:27  (MSK)
ок. спасибо. а какой способ лучше то?

>Я пишу под X, но только на Qt. Так вот я не
>видел еще приложений, которые сами бы уходили в фон. Из консоли
>их можно пустить в фоне добавив в конце команды занк "&".
>Так любая программа в фон загоняется :)


  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "RE: кто нибудь есть, кто пишет под X Window?"
Сообщение от XMan Искать по авторуВ закладки on 20-Фев-03, 16:57  (MSK)
Наверное лучше самому в фон не загоняться - лишний код да и средствами шела это все достигается без проблем. Кроме того, так ты свою программу можешь запустить в качестве "window manager" :)
  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "RE: кто нибудь есть, кто пишет под X Window?"
Сообщение от vvk emailИскать по авторуВ закладки on 20-Фев-03, 17:06  (MSK)
спасибо. тогда так буду делать.

>Наверное лучше самому в фон не загоняться - лишний код да и
>средствами шела это все достигается без проблем. Кроме того, так ты
>свою программу можешь запустить в качестве "window manager" :)


  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "RE: кто нибудь есть, кто пишет под X Window?"
Сообщение от vvk emailИскать по авторуВ закладки on 22-Фев-03, 15:45  (MSK)
не работает:
myprog& -s
говорит:
bash: -s: command bot found
так тоже не работает
myprog -s&

куда эту закорюку писать, если мне надо стартовать с параметром командной строки?

>Наверное лучше самому в фон не загоняться - лишний код да и
>средствами шела это все достигается без проблем. Кроме того, так ты
>свою программу можешь запустить в качестве "window manager" :)


  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "RE: кто нибудь есть, кто пишет под X Window?"
Сообщение от XMan Искать по авторуВ закладки on 23-Фев-03, 01:33  (MSK)
"Закорюка" пишестя после всех параметров.
А ты уверен, что "myprog" находится в путях поиска ? Может правильнее "./myprog", если ты находишься в том же каталоге ? И все-таки лучше отделять "закорюку" пробелом :)
  Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "RE: кто нибудь есть, кто пишет под X Window?"
Сообщение от vvk emailИскать по авторуВ закладки on 23-Фев-03, 22:44  (MSK)
я писал конечно так:
./myprog -s&

попробую еще с пробелом...

>"Закорюка" пишестя после всех параметров.
>А ты уверен, что "myprog" находится в путях поиска ? Может правильнее
>"./myprog", если ты находишься в том же каталоге ? И все-таки
>лучше отделять "закорюку" пробелом :)


  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру