Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > pl.comp.os.linux.programowanie > #2136
| X-Received | by 2002:a24:8342:: with SMTP id d63mr5003209ite.26.1542553954523; Sun, 18 Nov 2018 07:12:34 -0800 (PST) |
|---|---|
| X-Received | by 2002:a0c:cd87:: with SMTP id v7mr157008qvm.6.1542553954374; Sun, 18 Nov 2018 07:12:34 -0800 (PST) |
| Path | csiph.com!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder-in1.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!z5-v6no2512171ite.0!news-out.google.com!y103-v6ni3213ita.0!nntp.google.com!g188-v6no2522981itg.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail |
| Newsgroups | pl.comp.os.linux.programowanie |
| Date | Sun, 18 Nov 2018 07:12:34 -0800 (PST) |
| In-Reply-To | <9009417e-0ac4-4fa3-8f45-f4ae3d4031cf@googlegroups.com> |
| Complaints-To | groups-abuse@google.com |
| Injection-Info | glegroupsg2000goo.googlegroups.com; posting-host=188.146.166.223; posting-account=pyti1AoAAAAf66c003TUy10QAAnMWaKw |
| NNTP-Posting-Host | 188.146.166.223 |
| References | <3f0b46d3-b511-4b74-abbf-88d6d175040f@googlegroups.com> <9009417e-0ac4-4fa3-8f45-f4ae3d4031cf@googlegroups.com> |
| User-Agent | G2/1.0 |
| MIME-Version | 1.0 |
| Message-ID | <7d4b9cba-4973-41b0-ac70-aecd4fbb88be@googlegroups.com> (permalink) |
| Subject | Re: Pulpity witrualne Kde Plazma i Qt: Jak się dowiedzieć na którym pulpicie pracuję?!? |
| From | szykcech@gmail.com |
| Injection-Date | Sun, 18 Nov 2018 15:12:34 +0000 |
| Content-Type | text/plain; charset="UTF-8" |
| Content-Transfer-Encoding | quoted-printable |
| Lines | 64 |
| Xref | csiph.com pl.comp.os.linux.programowanie:2136 |
Show key headers only | View raw
Może będą to czytać małe dzieci, które chcą nauczyć się programować - więc...
Dobrą praktyką programistyczną jest wyłączanie specyficznego kodu do plików łatwo identyfikowalnych. W tym przypadku mam takie pliki:
+ Application.h : z deklaracją kasy aplikacji służącej do obsługi gniazdka lokalnego i tłumaczeń
+ Application.cpp : z definicją funkcji klas kodowanych niezależnie od systemu operacyjnego.
+ Application.Linux.cpp : z definicją funkcji specyficznych dla systemu operacyjnego Linux (są one wyłączone do osobnego, łatwo zauważalnego pliku - to jest właśnie ta "dobra praktyka")
+ Application.Windows.cpp : funkcje zakodowane z użyciem Api systemu Windows.
Każdy nowy system jaki bym wspierał musi mieć odpowiedni plik Application.XXX.cpp w mojej aplikacji (wynika to z tego, że nie mam czegoś takiego jak "domyślne zachowanie" w razie braku funkcji specyficznych).
W pliku pro dodaje się wtedy dyrektywę kompilacji warunkowej:
linux: SOURCES += Src/Application.Linux.cpp
win32: SOURCES += Src/Application.Windows.cpp
(w innych systemach budowania są podobne możliwości)
Natomiast mój plik Application.Linux.cpp wygląda tak:
#include "Application.h"
#include <X11/Xlib.h>
#include <X11/Xos.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xatom.h>
quint32 Application::currentDesktopNumber()
{
Display* lDisplay = XOpenDisplay(nullptr);
int lScreen = DefaultScreen(lDisplay);
Window lRootWindow = RootWindow(lDisplay, lScreen);
Atom lAtom(XInternAtom(lDisplay, "_NET_CURRENT_DESKTOP", True));
if(lAtom == None)
qFatal("no atom\n");
unsigned long nitems, leftover;
unsigned char* lData = nullptr;
int actual_format;
Atom actual_type;
// if(XGetWindowProperty(lDisplay, lRootWindow, lAtom, 0L, 8, False, AnyPropertyType, nullptr, nullptr, nullptr, nullptr, &lData) != Success)
if(XGetWindowProperty(lDisplay, lRootWindow, lAtom, 0L, 8, False, AnyPropertyType, &actual_type, &actual_format, &nitems, &leftover, &lData) != Success)
qFatal("XGetWindowProperty failed!");
quint32 lResult = lData[0];
delete [] lData;
return lResult;
}
void Application::raiseAnotherInstance(quint32 /*aProcesId*/)
{
}
Back to pl.comp.os.linux.programowanie | Previous | Next — Previous in thread | Next in thread | Find similar
Pulpity witrualne Kde Plazma i Qt: Jak się dowiedzieć na którym pulpicie pracuję?!? szykcech@gmail.com - 2018-11-17 07:54 -0800
Re: Pulpity witrualne Kde Plazma i Qt: Jak się dowiedzieć na którym pulpicie pracuję?!? szykcech@gmail.com - 2018-11-18 04:48 -0800
Re: Pulpity witrualne Kde Plazma i Qt: Jak się dowiedzieć na którym pulpicie pracuję?!? szykcech@gmail.com - 2018-11-18 07:12 -0800
Re: Pulpity witrualne Kde Plazma i Qt: Jak się dowiedzieć na którym pulpicie pracuję?!? szykcech@gmail.com - 2018-11-18 07:18 -0800
csiph-web