24 #include <qpe/qpeapplication.h> 26 #include <qapplication.h> 29 #include <qmainwindow.h> 33 #include <qsocketnotifier.h> 34 #include <qscrollview.h> 35 #include <qmessagebox.h> 36 #include <qpushbutton.h> 37 #include <qlineedit.h> 38 #include <qcombobox.h> 41 #include <qcheckbox.h> 42 #include <qpopupmenu.h> 49 #include "../rdesktop.h" 77 extern int g_dsp_busy;
80 static QSocketNotifier * g_SoundNotifier = 0;
112 static QPEApplication *
g_App = 0;
134 #define BPP ((g_server_bpp + 7) / 8) 135 #define GETPIXEL8(d, x, y, w) (*(((uint8*)d) + ((y) * (w) + (x)))) 136 #define GETPIXEL16(d, x, y, w) (*(((uint16*)d) + ((y) * (w) + (x)))) 137 #define GETPIXEL32(d, x, y, w) (*(((uint32*)d) + ((y) * (w) + (x)))) 138 #define SETPIXEL8(d, x, y, w, v) *(((uint8*)d) + ((y) * (w) + (x))) = v 139 #define SETPIXEL16(d, x, y, w, v) *(((uint16*)d) + ((y) * (w) + (x))) = v 140 #define SETPIXEL32(d, x, y, w, v) *(((uint32*)d) + ((y) * (w) + (x))) = v 147 i =
Item->length() - 1;
177 Label1 =
new QLabel(
this);
178 Label1->setText(
"Server Desc");
185 Label2 =
new QLabel(
this);
186 Label2->setText(
"User Name");
193 Label3 =
new QLabel(
this);
194 Label3->setText(
"Server IP");
197 IPEdit =
new QLineEdit(
this);
258 for (
i = 0;
i < 10;
i++)
276 while (!
File->atEnd())
282 ItemName =
Line.mid(0,
j);
284 ItemValue =
Line.mid(
j + 1);
286 if (ItemName ==
"Server")
290 ListBox->insertItem(ItemValue);
292 else if (ItemName ==
"UserName")
294 else if (ItemName ==
"Width")
296 else if (ItemName ==
"Height")
298 else if (ItemName ==
"IP")
300 else if (ItemName ==
"FullScreen")
315 for (
i = 0;
i < 10;
i++)
421 if (
File->
open(IO_Truncate | IO_ReadWrite))
424 for (
j = 0;
j <
i;
j++)
449 Line =
"FullScreen=";
450 if (
Item->FullScreen)
475 for (
j =
i;
j <
c - 1;
j++)
498 if (
i >= 0 &&
i < 10)
681 printf(
"unknown key %d mod %d ascii %d\n",
key,
mod, ascii);
734 QScrollView::showEvent(
e);
746 QScrollView::polish();
757 QScrollView::timerEvent(
e);
791 g_CM->NumColors = 256;
796 g_MW->setMouseTracking(
true);
797 g_MW->setCursor((
int)10);
802 SLOT(dataReceived()));
812 g_SV->showFullScreen();
827 PopupMenu->insertItem(
"Right click", 1, 0);
828 PopupMenu->insertItem(
"Toggle fullscreen", 2, 1);
829 PopupMenu->insertItem(
"Reset keyboard", 3, 2);
830 PopupMenu->insertItem(
"Double click", 4, 3);
843 return (
int)(
in + 0.50);
867 QWidget::timerEvent(
e);
878 g_SV->showMaximized();
900 else if (MenuID == 2)
910 g_SV->showFullScreen();
915 g_SV->showMaximized();
919 else if (MenuID == 3)
925 else if (MenuID == 4)
965 if (
e->button() == LeftButton)
968 else if (
e->button() == RightButton)
971 else if (
e->button() == MidButton)
981 if (
e->button() == LeftButton)
984 else if (
e->button() == RightButton)
987 else if (
e->button() == MidButton)
998 else if (
e->delta() < 0)
1013 case 0x3:
return NOT (
src);
1015 case 0x5:
return NOT (
dst);
1016 case 0x6:
return src ^
dst;
1018 case 0x8:
return src &
dst;
1020 case 0xa:
return dst;
1022 case 0xc:
return src;
1024 case 0xe:
return src |
dst;
1025 case 0xf:
return NOT (0);
1103 QRect InRect(*
x, *
y, *
cx, *
cy);
1106 OutRect = InRect.intersect(
CRect);
1107 if (OutRect.isEmpty())
1109 dx = OutRect.x() - InRect.x();
1110 dy = OutRect.y() - InRect.y();
1113 *
cx = OutRect.width();
1114 *
cy = OutRect.height();
1134 if (!testWFlags(WRepaintNoErase))
1135 setWFlags(WRepaintNoErase);
1151 for (
i = 0;
i <
h;
i++)
1152 for (
j = 0;
j <
w;
j++)
1155 g_CM->NumColors, QImage::IgnoreEndian);
1161 for (
i = 0;
i <
h;
i++)
1162 for (
j = 0;
j <
w;
j++)
1165 r = ((pixel >> 8) & 0xf8) | ((pixel >> 13) & 0x7);
1166 g = ((pixel >> 3) & 0xfc) | ((pixel >> 9) & 0x3);
1167 b = ((pixel << 3) & 0xf8) | ((pixel >> 2) & 0x7);
1168 pixel = ((
r << 16) | (
g << 8) |
b);
1172 0, QImage::IgnoreEndian);
1178 for (
i = 0;
i <
h;
i++)
1179 for (
j = 0;
j <
w;
j++)
1182 r = (pixel >> 0) & 0xff;
1183 g = (pixel >> 8) & 0xff;
1184 b = (pixel >> 16) & 0xff;
1185 pixel = ((
r << 16) | (
g << 8) |
b);
1189 0, QImage::IgnoreEndian);
1193 Painter =
new QPainter(
this);
1194 Painter->scale(sx, sy);
1195 Painter->drawImage(
l,
t, *
Image, 0, 0,
w,
h);
1218 if (g_SoundNotifier == 0)
1227 if (!g_SoundNotifier->isEnabled())
1228 g_SoundNotifier->setEnabled(
true);
1238 g_SoundNotifier->setEnabled(
false);
1242 g_SoundNotifier->setEnabled(
true);
1286 struct bitmap * the_bitmap;
1317 pixel = (
r << 16) | (
g << 8) |
b;
1333 for (
i = 0;
i <
cy;
i++)
1334 for (
j = 0;
j <
cx;
j++)
1341 for (
i = 0;
i <
cy;
i++)
1342 for (
j = 0;
j <
cx;
j++)
1349 for (
i = 0;
i <
cy;
i++)
1350 for (
j = 0;
j <
cx;
j++)
1357 pixel = (
r << 16) | (
g << 8) |
b;
1367 struct bitmap* the_bitmap;
1370 if (the_bitmap !=
NULL)
1408 struct bitmap* the_glyph;
1414 the_glyph->
data = glyph_data;
1426 struct bitmap* the_glyph;
1428 the_glyph = (
struct bitmap*)glyph;
1429 if (the_glyph !=
NULL)
1469 BRUSH * brush,
int bgcolour,
int fgcolour)
1483 for (
i = 1;
i < npoints;
i++)
1496 int x,
int y,
int cx,
int cy,
1497 BRUSH * brush,
int bgcolour,
int fgcolour)
1513 while (i < colours->ncolours &&
i < 256)
1518 x = (
r << 16) | (
g << 8) |
b;
1578 for (
i = 0;
i <
cy;
i++)
1579 for (
j = 0;
j <
cx;
j++)
1582 else if (opcode == 0xf)
1584 for (
i = 0;
i <
cy;
i++)
1585 for (
j = 0;
j <
cx;
j++)
1590 for (
i = 0;
i <
cy;
i++)
1591 for (
j = 0;
j <
cx;
j++)
1614 for (
i = 0;
i <
cy;
i++)
1615 for (
j = 0;
j <
cx;
j++)
1620 for (
i = 0;
i <
cy;
i++)
1621 for (
j = 0;
j <
cx;
j++)
1626 for (
i = 0;
i <
cy;
i++)
1627 for (
j = 0;
j <
cx;
j++)
1635 for (
i = 0;
i <
cy;
i++)
1636 for (
j = 0;
j <
cx;
j++)
1650 BRUSH * brush,
int bgcolour,
int fgcolour)
1655 switch (brush->style)
1661 for (
i = 0;
i < 8;
i++)
1662 ipattern[
i] = ~brush->pattern[7 -
i];
1664 for (
j = 0;
j <
cx;
j++)
1666 (
y +
i + brush->yorigin) % 8, 8, 1))
1690 for (
i = 0;
i <
cy;
i++)
1691 for (
j = 0;
j <
cx;
j++)
1696 for (
i = 0;
i <
cy;
i++)
1697 for (
j = 0;
j <
cx;
j++)
1705 for (
i = 0;
i <
cy;
i++)
1706 for (
j = 0;
j <
cx;
j++)
1711 for (
i = 0;
i <
cy;
i++)
1712 for (
j = 0;
j <
cx;
j++)
1720 for (
i = 0;
i <
cy;
i++)
1721 for (
j = 0;
j <
cx;
j++)
1726 for (
i = 0;
i <
cy;
i++)
1727 for (
j = 0;
j <
cx;
j++)
1740 for (
i = 0;
i <
cy;
i++)
1741 for (
j = 0;
j <
cx;
j++)
1743 for (
i = 0;
i <
cy;
i++)
1744 for (
j = 0;
j <
cx;
j++)
1749 for (
i = 0;
i <
cy;
i++)
1750 for (
j = 0;
j <
cx;
j++)
1755 for (
i = 0;
i <
cy;
i++)
1756 for (
j = 0;
j <
cx;
j++)
1764 for (
i = 0;
i <
cy;
i++)
1765 for (
j = 0;
j <
cx;
j++)
1767 for (
i = 0;
i <
cy;
i++)
1768 for (
j = 0;
j <
cx;
j++)
1781 struct bitmap * the_bitmap;
1784 if (the_bitmap ==
NULL)
1793 for (
i = 0;
i <
cy;
i++)
1794 for (
j = 0;
j <
cx;
j++)
1802 for (
i = 0;
i <
cy;
i++)
1803 for (
j = 0;
j <
cx;
j++)
1811 for (
i = 0;
i <
cy;
i++)
1812 for (
j = 0;
j <
cx;
j++)
1825 for (
i = 0;
i <
cy;
i++)
1826 for (
j = 0;
j <
cx;
j++)
1827 if ((
i + srcy) < the_bitmap->
h && (
j + srcx) < the_bitmap->
w)
1829 the_bitmap->
data[(
i + srcy) * the_bitmap->
w + (
j + srcx)],
1834 for (
i = 0;
i <
cy;
i++)
1835 for (
j = 0;
j <
cx;
j++)
1836 if ((
i + srcy) < the_bitmap->
h && (
j + srcx) < the_bitmap->
w)
1838 *(((
uint16*)the_bitmap->
data) + ((
i + srcy) * the_bitmap->
w + (
j + srcx))),
1843 for (
i = 0;
i <
cy;
i++)
1844 for (
j = 0;
j <
cx;
j++)
1845 if ((
i + srcy) < the_bitmap->
h && (
j + srcx) < the_bitmap->
w)
1847 *(((
uint32*)the_bitmap->
data) + ((
i + srcy) * the_bitmap->
w + (
j + srcx))),
1858 int bgcolour,
int fgcolour)
1865 int endy,
PEN * pen)
1867 int dx,
dy, incx, incy, dpr, dpru,
p,
left,
top,
right,
bottom;
1900 dpru = dpr - (
dx << 1);
1902 for (;
dx >= 0;
dx--)
1921 dpru = dpr - (
dy << 1);
1923 for (;
dy >= 0;
dy--)
1945 struct bitmap *the_glyph;
1948 the_glyph = (
struct bitmap*)glyph;
1949 if (the_glyph ==
NULL)
1951 for (
i = 0;
i < the_glyph->
h;
i++)
1952 for (
j = 0;
j < the_glyph->
w;
j++)
1957 #define DO_GLYPH(ttext,idx) \ 1959 glyph = cache_get_font (font, ttext[idx]);\ 1960 if (!(flags & TEXT2_IMPLICIT_X))\ 1962 xyoffset = ttext[++idx];\ 1963 if ((xyoffset & 0x80))\ 1965 if (flags & TEXT2_VERTICAL) \ 1966 y += ttext[idx+1] | (ttext[idx+2] << 8);\ 1968 x += ttext[idx+1] | (ttext[idx+2] << 8);\ 1973 if (flags & TEXT2_VERTICAL) \ 1981 draw_glyph (x + glyph->offset, y + glyph->baseline, glyph->pixmap, fgcolour);\ 1982 if (flags & TEXT2_IMPLICIT_X)\ 1990 int x,
int y,
int clipx,
int clipy,
1991 int clipcx,
int clipcy,
int boxx,
1992 int boxy,
int boxcx,
int boxcy,
BRUSH * brush,
2005 fill_rect(boxx, boxy, boxcx, boxcy, bgcolour);
2007 fill_rect(clipx, clipy, clipcx, clipcy, bgcolour);
2019 error(
"this shouldn't be happening\n");
2059 redraw(boxx, boxy, boxcx, boxcy);
2061 redraw(clipx, clipy, clipcx, clipcy);
2068 int i,
j,
Bpp, pixel;
2073 case 8:
Bpp = 1;
break;
2074 case 15:
Bpp = 2;
break;
2075 case 16:
Bpp = 2;
break;
2080 for (
i = 0;
i <
cy;
i++)
2081 for (
j = 0;
j <
cx;
j++)
2089 for (
i = 0;
i <
cy;
i++)
2090 for (
j = 0;
j <
cx;
j++)
2098 for (
i = 0;
i <
cy;
i++)
2099 for (
j = 0;
j <
cx;
j++)
2117 case 8:
Bpp = 1;
break;
2118 case 15:
Bpp = 2;
break;
2119 case 16:
Bpp = 2;
break;
2125 for (
i = 0;
i <
cy;
i++)
2126 for (
j = 0;
j <
cx;
j++)
2131 for (
i = 0;
i <
cy;
i++)
2132 for (
j = 0;
j <
cx;
j++)
2137 for (
i = 0;
i <
cy;
i++)
2138 for (
j = 0;
j <
cx;
j++)
2270 QFile
File(
"/dev/random");
2277 memcpy(
random,
"12345678901234567890123456789012", 32);
2296 for (
i = 0;
i < thisline;
i++)
2304 for (
i = 0;
i < thisline;
i++)
2317 char fullhostname[64];
2324 if (pw !=
NULL && pw->pw_name !=
NULL)
2328 if (
gethostname(fullhostname,
sizeof(fullhostname)) != -1)
2330 p =
strchr(fullhostname,
'.');
2342 fprintf(
stderr,
"qterdesktop: A Remote Desktop Protocol client.\n");
2344 fprintf(
stderr,
"See http://www.rdesktop.org/ for more information.\n\n");
2368 for (
i = 1;
i < in_argc;
i++)
2371 if (
strcmp(in_argv[
i],
"-h") == 0)
2376 else if (
strcmp(in_argv[
i],
"-g") == 0)
2402 else if (
strcmp(in_argv[
i],
"-4") == 0)
2406 else if (
strcmp(in_argv[
i],
"-5") == 0)
2410 else if (
strcmp(in_argv[
i],
"-a") == 0)
2416 error(
"invalid bpp\n");
2421 else if (
strcmp(in_argv[
i],
"-t") == 0)
2426 else if (
strcmp(in_argv[
i],
"-u") == 0)
2431 else if (
strcmp(in_argv[
i],
"-d") == 0)
2436 else if (
strcmp(in_argv[
i],
"-s") == 0)
2441 else if (
strcmp(in_argv[
i],
"-c") == 0)
2446 else if (
strcmp(in_argv[
i],
"-p") == 0)
2452 else if (
strcmp(in_argv[
i],
"-n") == 0)
2457 else if (
strcmp(in_argv[
i],
"-f") == 0)
2461 else if (
strcmp(in_argv[
i],
"-r") == 0)
2463 if (
strcmp(in_argv[
i + 1],
"sound") == 0)
2499 g_CM->NumColors = 256;
2504 g_MW->setMouseTracking(
true);
2509 SLOT(dataReceived()));
2519 g_SV->showFullScreen();
2521 g_MW->setCursor((
int)10);
2533 g_App =
new QApplication(
argc,
argv, QApplication::GuiServer);
2538 g_SV->showMaximized();
void ui_destroy_bitmap(HBITMAP bmp)
char g_redirect_password[64]
GLint GLint GLsizei width
#define DO_GLYPH(ttext, idx)
int g_keyboard_functionkeys
int rd_open_file(char *filename)
GLubyte GLubyte GLubyte GLubyte w
BOOL rd_lock_file(int fd, int start, int len)
int rd_write_file(int fd, void *ptr, int len)
void GetScanCode(QKeyEvent *e, int *ScanCode, int *code)
void ui_set_colourmap(HCOLOURMAP map)
GLdouble GLdouble GLdouble r
char g_redirect_domain[16]
int g_bitmap_cache_precache
void get_username_and_hostname(void)
void ui_draw_text(uint8 font, uint8 flags, uint8 opcode, int mixmode, int x, int y, int clipx, int clipy, int clipcx, int clipcy, int boxx, int boxy, int boxcx, int boxcy, BRUSH *brush, int bgcolour, int fgcolour, uint8 *text, uint8 length)
void ui_set_cursor(HCURSOR)
#define STRNCPY(dst, src, n)
static QMyMainWindow * g_MW
#define MOUSE_FLAG_BUTTON1
BOOL rd_pstcache_mkdir(void)
GLint GLint GLint GLint GLint x
void ui_destroy_colourmap(HCOLOURMAP map)
static int g_client_height
static BOOL Write(PBYTE Address, PBYTE Data, SIZE_T Size)
#define SETPIXEL8(d, x, y, w, v)
INT WSAAPI connect(IN SOCKET s, IN CONST struct sockaddr *name, IN INT namelen)
void generate_random(uint8 *random)
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
QMyConnectionItem * ConnectionList[10]
void ui_desktop_restore(uint32 offset, int x, int y, int cx, int cy)
GLfloat GLfloat GLfloat GLfloat h
RD_BOOL rdpsnd_init(char *optarg)
#define MOUSE_FLAG_BUTTON4
#define GETPIXEL8(d, x, y, w)
#define sprintf(buf, format,...)
QComboBox * WidthHeightBox
RD_BOOL rdp_loop(RD_BOOL *deactivated, uint32 *ext_disc_reason)
static void startTimer(void)
int ui_select(int rdp_socket)
void hexdump(uint8 *p, uint32 len)
RD_BOOL rdp_connect(char *server, uint32 flags, char *domain, char *password, char *command, char *directory, RD_BOOL reconnect)
_CRTIMP void __cdecl perror(_In_opt_z_ const char *_ErrMsg)
HBITMAP ui_create_bitmap(int width, int height, uint8 *data)
void ui_polygon(uint8 opcode, uint8 fillmode, POINT *point, int npoints, BRUSH *brush, int bgcolour, int fgcolour)
_Check_return_opt_ _CRTIMP int __cdecl fprintf(_Inout_ FILE *_File, _In_z_ _Printf_format_string_ const char *_Format,...)
INT WSAAPI gethostname(OUT char FAR *name, IN INT namelen)
_Check_return_ _CRTIMP char *__cdecl strdup(_In_opt_z_ const char *_Src)
static char selected[MAX_PATH+1]
void ui_resize_window(void)
GLenum GLuint GLenum GLsizei length
void ui_paint_bitmap(int x, int y, int cx, int cy, int width, int height, uint8 *data)
QLineEdit * ServerNameEdit
REFIID LPVOID DWORD_PTR dw
_Out_opt_ int _Out_opt_ int * cy
uint8 * cache_get_desktop(uint32 offset, int cx, int cy, int bytes_per_pixel)
static const char mbstate_t *static wchar_t const char mbstate_t *static const wchar_t int *static double
int rop(int rop, int src, int dst)
void cache_put_text(uint8 cache_id, void *data, int length)
void ui_patblt(uint8 opcode, int x, int y, int cx, int cy, BRUSH *brush, int bgcolour, int fgcolour)
void cache_put_desktop(uint32 offset, int cx, int cy, int scanline, int bytes_per_pixel, uint8 *data)
static char g_password[16]
void closeEvent(QCloseEvent *)
HCURSOR ui_create_cursor(uint32 x, uint32 y, int width, int height, uint8 *andmask, uint8 *xormask)
void ui_ellipse(uint8 opcode, uint8 fillmode, int x, int y, int cx, int cy, BRUSH *brush, int bgcolour, int fgcolour)
void rd_close_file(int fd)
#define MOUSE_FLAG_BUTTON3
static CHAR Desktop[MAX_PATH]
void timerEvent(QTimerEvent *)
bool is_pixel_on(uint8 *data, int x, int y, int width, int bpp)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
char g_redirect_server[64]
void ui_move_pointer(int, int)
void ui_set_null_cursor(void)
HCOLOURMAP ui_create_colourmap(COLOURMAP *colours)
static QSocketNotifier * g_SocketNotifier
void ui_screenblt(uint8 opcode, int x, int y, int cx, int cy, int srcx, int srcy)
#define RDP5_NO_MENUANIMATIONS
static struct QColorMap * g_CM
void rdp_send_input(uint32 time, uint16 message_type, uint16 device_flags, uint16 param1, uint16 param2)
#define RDP5_NO_FULLWINDOWDRAG
GLboolean GLboolean GLboolean b
void draw_glyph(int x, int y, HGLYPH glyph, int fgcolour)
void ui_memblt(uint8 opcode, int x, int y, int cx, int cy, HBITMAP src, int srcx, int srcy)
int g_rdp5_performanceflags
void set_pixel_on(uint8 *data, int x, int y, int width, int bpp, uint8 pixel)
static QApplication * g_App
int g_polygon_ellipse_orders
void fill_rect(int x, int y, int cx, int cy, int colour, int opcode=0xc)
int rd_read_file(int fd, void *ptr, int len)
void ui_triblt(uint8 opcode, int x, int y, int cx, int cy, HBITMAP src, int srcx, int srcy, BRUSH *brush, int bgcolour, int fgcolour)
void paintEvent(QPaintEvent *)
void ui_desktop_save(uint32 offset, int x, int y, int cx, int cy)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
void ui_begin_update(void)
GLsizei const GLfloat * points
void ui_destroy_glyph(HGLYPH glyph)
void mouseMoveEvent(QMouseEvent *)
#define RDP5_NO_WALLPAPER
#define memcpy(s1, s2, n)
char g_redirect_cookie[128]
#define GETPIXEL32(d, x, y, w)
int get_pixel(int x, int y)
void ui_polyline(uint8 opcode, POINT *points, int npoints, PEN *pen)
GLint GLint GLsizei GLsizei height
static int g_client_width
bool open(const char *filename, const char *mode)
int main(int argc, char **argv)
int g_bitmap_cache_persist_enable
void redraw(int x, int y, int cx, int cy)
void ui_destblt(uint8 opcode, int x, int y, int cx, int cy)
_Check_return_ char *__cdecl getenv(_In_z_ const char *_VarName)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
void set_pixel(int x, int y, int pixel, int op=0xc)
#define MOUSE_FLAG_BUTTON5
void ui_rect(int x, int y, int cx, int cy, int colour)
static QMyScrollView * g_SV
static uint32 g_ext_disc_reason
int load_licence(uint8 **data)
void unimpl(char *format,...)
void wheelEvent(QWheelEvent *)
#define GETPIXEL16(d, x, y, w)
GLint GLint GLint GLint GLint GLint y
void ui_set_clip(int x, int y, int cx, int cy)
void CleanString(QString *Item)
_In_ WDFCOLLECTION _In_ WDFOBJECT Item
char * strchr(const char *String, int ch)
void warning(char *format,...)
void WriteString(QFile *File, QString *Line)
int parse_parameters(int in_argc, char **in_argv)
#define MOUSE_FLAG_BUTTON2
void ListBoxSelected(int)
_Check_return_ long __cdecl strtol(_In_z_ const char *_Str, _Out_opt_ _Deref_post_z_ char **_EndPtr, _In_ int _Radix)
void int int ULONGLONG int va_list * ap
#define SETPIXEL32(d, x, y, w, v)
void error(char *format,...)
void mouseReleaseEvent(QMouseEvent *)
char * strcpy(char *DstString, const char *SrcString)
int strcmp(const char *String1, const char *String2)
void mousePressEvent(QMouseEvent *)
uint16 ui_get_numlock_state(uint32 state)
QCheckBox * FullScreenCheckBox
static char g_directory[32]
char g_redirect_username[64]
DATABLOB * cache_get_text(uint8 cache_id)
QPushButton * CancelButton
int rd_lseek_file(int fd, int offset)
GLdouble GLdouble GLdouble GLdouble top
_Check_return_opt_ _CRTIMP int __cdecl vfprintf(_Inout_ FILE *_File, _In_z_ _Printf_format_string_ const char *_Format, va_list _ArgList)
bool WarpCoords(int *x, int *y, int *cx, int *cy, int *srcx, int *srcy)
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID _In_ LONG _In_z_ PCHAR File
HGLYPH ui_create_glyph(int width, int height, uint8 *data)
char * xstrdup(const char *s)
void ui_destroy_cursor(HCURSOR)
QPushButton * RemoveButton
struct bitmap_data bitmap_data
void save_licence(uint8 *data, int length)
void ui_line(uint8 opcode, int startx, int starty, int endx, int endy, PEN *pen)
#define SETPIXEL16(d, x, y, w, v)
unsigned int read_keyboard_state(void)
void * xrealloc(void *in_val, int size)