Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision

Target

Select target project
  • xmonader/gambas
  • gambas/gambas
  • gbWilly/gambas
  • dtardon/gambas
  • Davidmue/gambas
  • mmu_man/gambas
  • jguardon/gambas
  • tstueker/gambas
  • timsoft/gambas
  • yann64/gambas
  • Matthew-Collins/gambas
  • microhobby/gambas
  • ercoupeflyer/gambas
  • pebauer68/gambas
  • ptmarstech/gambas
  • christhal/gambas
  • tboege/gambas
  • christopherwoo/gambas
  • yusronarif/gambas
  • gen.braga/gambas
  • MelvinG24/gambas
  • Krischel/gambas
  • liang-wei/gambas
  • brucebruen/gambas
  • LibreDWG/gambas
  • SkyN9ne/gambas
  • zxMarce/gambas
  • lordheavy/gambas
  • ddabrahams76/gambas
  • GianluigiOr/gambas
  • rfc1394/gambas
  • wekan/gambas
  • bsteers4/gambas
  • fweimer-rh/gambas
  • CDCDCDCDCDCD/gambas
  • geekdu42/gambas
  • belmotek/gambas
  • jfrank1500/gambas
  • mfischerq/gambas
  • shiny0110/gambas
  • kk667788/gambas
  • bandali/gambas
  • 64sys/gambas
  • justlostintime/gambas
  • aleasto/gambas
  • bgermann/gambas
  • linusky/gambas
47 results
Select Git revision
Show changes
Commits on Source (4)
Showing
with 132 additions and 17 deletions
......@@ -13,12 +13,9 @@ Private $iToken As Integer
Private $hScreenshotSignal As DBusSignal
Private $hScreenshot As Image
Private $cResult As Collection
Private $bEnabled As Boolean
Private $bEnabledSet As Boolean
Private Sub StartPortal()
If $bEnabledSet And If Not $bEnabled Then Return
If $bStarted Then Return
Component.Load("gb.dbus")
DBus.Session.Start("org.freedesktop.portal.Desktop")
......
3.18.90
\ No newline at end of file
comp/src/gb.form.stock/gambas-thin/128/city.png

524 B | W: 0px | H: 0px

comp/src/gb.form.stock/gambas-thin/128/city.png

643 B | W: 0px | H: 0px

comp/src/gb.form.stock/gambas-thin/128/city.png
comp/src/gb.form.stock/gambas-thin/128/city.png
comp/src/gb.form.stock/gambas-thin/128/city.png
comp/src/gb.form.stock/gambas-thin/128/city.png
  • 2-up
  • Swipe
  • Onion skin
comp/src/gb.form.stock/gambas-thin/128/cpu.png

254 B | W: 0px | H: 0px

comp/src/gb.form.stock/gambas-thin/128/cpu.png

174 B | W: 0px | H: 0px

comp/src/gb.form.stock/gambas-thin/128/cpu.png
comp/src/gb.form.stock/gambas-thin/128/cpu.png
comp/src/gb.form.stock/gambas-thin/128/cpu.png
comp/src/gb.form.stock/gambas-thin/128/cpu.png
  • 2-up
  • Swipe
  • Onion skin
comp/src/gb.form.stock/gambas-thin/128/earth.png

2.79 KiB | W: 0px | H: 0px

comp/src/gb.form.stock/gambas-thin/128/earth.png

2.54 KiB | W: 0px | H: 0px

comp/src/gb.form.stock/gambas-thin/128/earth.png
comp/src/gb.form.stock/gambas-thin/128/earth.png
comp/src/gb.form.stock/gambas-thin/128/earth.png
comp/src/gb.form.stock/gambas-thin/128/earth.png
  • 2-up
  • Swipe
  • Onion skin
comp/src/gb.form.stock/gambas-thin/128/epub.png

895 B | W: 0px | H: 0px

comp/src/gb.form.stock/gambas-thin/128/epub.png

899 B | W: 0px | H: 0px

comp/src/gb.form.stock/gambas-thin/128/epub.png
comp/src/gb.form.stock/gambas-thin/128/epub.png
comp/src/gb.form.stock/gambas-thin/128/epub.png
comp/src/gb.form.stock/gambas-thin/128/epub.png
  • 2-up
  • Swipe
  • Onion skin
comp/src/gb.form.stock/gambas-thin/128/hardware.png

184 B | W: 0px | H: 0px

comp/src/gb.form.stock/gambas-thin/128/hardware.png

181 B | W: 0px | H: 0px

comp/src/gb.form.stock/gambas-thin/128/hardware.png
comp/src/gb.form.stock/gambas-thin/128/hardware.png
comp/src/gb.form.stock/gambas-thin/128/hardware.png
comp/src/gb.form.stock/gambas-thin/128/hardware.png
  • 2-up
  • Swipe
  • Onion skin
comp/src/gb.form.stock/gambas-thin/128/help.png

1.18 KiB | W: 0px | H: 0px

comp/src/gb.form.stock/gambas-thin/128/help.png

1.23 KiB | W: 0px | H: 0px

comp/src/gb.form.stock/gambas-thin/128/help.png
comp/src/gb.form.stock/gambas-thin/128/help.png
comp/src/gb.form.stock/gambas-thin/128/help.png
comp/src/gb.form.stock/gambas-thin/128/help.png
  • 2-up
  • Swipe
  • Onion skin
comp/src/gb.form.stock/gambas-thin/128/microphone.png

1.67 KiB | W: 0px | H: 0px

comp/src/gb.form.stock/gambas-thin/128/microphone.png

1.57 KiB | W: 0px | H: 0px

comp/src/gb.form.stock/gambas-thin/128/microphone.png
comp/src/gb.form.stock/gambas-thin/128/microphone.png
comp/src/gb.form.stock/gambas-thin/128/microphone.png
comp/src/gb.form.stock/gambas-thin/128/microphone.png
  • 2-up
  • Swipe
  • Onion skin
comp/src/gb.form.stock/gambas-thin/128/music.png

1.12 KiB | W: 0px | H: 0px

comp/src/gb.form.stock/gambas-thin/128/music.png

1.17 KiB | W: 0px | H: 0px

comp/src/gb.form.stock/gambas-thin/128/music.png
comp/src/gb.form.stock/gambas-thin/128/music.png
comp/src/gb.form.stock/gambas-thin/128/music.png
comp/src/gb.form.stock/gambas-thin/128/music.png
  • 2-up
  • Swipe
  • Onion skin
comp/src/gb.form.stock/gambas-thin/128/text-shadow-rtl.png

1.25 KiB

comp/src/gb.form.stock/gambas-thin/128/text-sub-rtl.png

1.26 KiB

comp/src/gb.form.stock/gambas-thin/128/text-super-rtl.png

1.31 KiB

comp/src/gb.form.stock/gambas-thin/128/tree.png

1.52 KiB | W: 0px | H: 0px

comp/src/gb.form.stock/gambas-thin/128/tree.png

1.43 KiB | W: 0px | H: 0px

comp/src/gb.form.stock/gambas-thin/128/tree.png
comp/src/gb.form.stock/gambas-thin/128/tree.png
comp/src/gb.form.stock/gambas-thin/128/tree.png
comp/src/gb.form.stock/gambas-thin/128/tree.png
  • 2-up
  • Swipe
  • Onion skin
comp/src/gb.form.stock/gambas-thin/app/synaptic.png

1.75 KiB

......@@ -33,6 +33,14 @@
#include "CPicture.h"
#include "CImage.h"
static char *_result = NULL;
static gboolean save_func(const gchar *buf, gsize count, GError **error, gpointer data)
{
_result = GB.AddString(_result, buf, count);
return TRUE;
}
static void free_image(GB_IMG *img, void *image)
{
((gPicture *)image)->unref();
......@@ -211,6 +219,25 @@ BEGIN_METHOD(Image_Save, GB_STRING path; GB_INTEGER quality)
END_METHOD
BEGIN_METHOD(Image_ToString, GB_STRING format; GB_INTEGER quality)
check_image(THIS);
_result = NULL;
switch (PICTURE->save(MISSING(format) ? NULL : GB.ToZeroString(ARG(format)), VARGOPT(quality, -1), save_func))
{
case 0: break;
case -1: GB.Error("Unknown format"); break;
case -2: GB.Error("Unable to save picture"); break;
}
GB.FreeStringLater(_result);
GB.ReturnString(_result);
END_METHOD
BEGIN_METHOD(Image_Stretch, GB_INTEGER width; GB_INTEGER height; GB_BOOLEAN fast)
CIMAGE *img;
......@@ -274,7 +301,8 @@ GB_DESC CImageDesc[] =
GB_STATIC_METHOD("Load", "Image", Image_Load, "(Path)s"),
GB_STATIC_METHOD("FromString", "Image", Image_FromString, "(Data)s"),
GB_METHOD("Save", 0, Image_Save, "(Path)s[(Quality)i]"),
GB_METHOD("Save", NULL, Image_Save, "(Path)s[(Quality)i]"),
GB_METHOD("ToString", "s", Image_ToString, "[(Format)s(Quality)i]"),
GB_METHOD("Stretch", "Image", Image_Stretch, "(Width)i(Height)i[(Fast)b]"),
GB_METHOD("Rotate", "Image", Image_Rotate, "(Angle)f"),
......
......@@ -33,6 +33,14 @@
#include "CImage.h"
#include "CPicture.h"
static char *_result = NULL;
static gboolean save_func(const gchar *buf, gsize count, GError **error, gpointer data)
{
_result = GB.AddString(_result, buf, count);
return TRUE;
}
CPICTURE *CPICTURE_create(gPicture *picture)
{
CPICTURE *pic;
......@@ -193,6 +201,23 @@ BEGIN_METHOD(Picture_Save, GB_STRING path; GB_INTEGER quality)
END_METHOD
BEGIN_METHOD(Picture_ToString, GB_STRING format; GB_INTEGER quality)
_result = NULL;
switch (PICTURE->save(MISSING(format) ? NULL : GB.ToZeroString(ARG(format)), VARGOPT(quality, -1), save_func))
{
case 0: break;
case -1: GB.Error("Unknown format"); break;
case -2: GB.Error("Unable to save picture"); break;
}
GB.FreeStringLater(_result);
GB.ReturnString(_result);
END_METHOD
BEGIN_METHOD_VOID(Picture_Clear)
PICTURE->clear();
......@@ -261,6 +286,7 @@ GB_DESC CPictureDesc[] =
GB_STATIC_METHOD("Load", "Picture", Picture_Load, "(Path)s"),
GB_STATIC_METHOD("FromString", "Picture", Picture_FromString, "(Data)s"),
GB_METHOD("Save", NULL, Picture_Save, "(Path)s[(Quality)i]"),
GB_METHOD("ToString", "s", Picture_ToString, "[(Format)s(Quality)i]"),
GB_METHOD("Resize", NULL, Picture_Resize, "(Width)i(Height)i"),
GB_METHOD("Clear", NULL, Picture_Clear, NULL),
......
......@@ -496,7 +496,7 @@ void gPicture::fill(gColor col)
// returns -> 0, OK / -1, Bad format / -2 invalid path
int gPicture::save(const char *path, int quality)
int gPicture::save(const char *path, int quality, GdkPixbufSaveFunc func)
{
bool ok=false;
int b;
......@@ -505,12 +505,26 @@ int gPicture::save(const char *path, int quality)
GSList *formats = gdk_pixbuf_get_formats();
GSList *iter=formats;
GdkPixbuf *image = getPixbuf();
char arg[16];
for (b=strlen(path)-1;b>=0;b--)
if (path[b]=='.') { buf=path+b+1; break; }
char arg[16];
const char *opt_keys[] = { "quality", NULL };
char *opt_values[] = { NULL, NULL };
char **keys;
char **values;
if (!buf) return -1;
if (func)
{
buf = path;
if (!buf || !*buf)
buf = "png";
}
else
{
buf = strrchr(path, '.');
if (!buf)
return -1;
buf++;
}
while (iter && (!ok) )
{
......@@ -539,11 +553,25 @@ int gPicture::save(const char *path, int quality)
if (quality >= 0)
{
keys = (char **)opt_keys;
values = opt_values;
sprintf(arg, "%d", quality);
b = gdk_pixbuf_save(image, path, type, NULL, "quality", arg, (void *)NULL);
values[0] = arg;
}
else
b = gdk_pixbuf_save(image, path, type, NULL, (void *)NULL);
{
keys = (char **)&opt_keys[1];
values = &opt_values[1];
}
if (func)
{
b = gdk_pixbuf_save_to_callbackv(image, func, NULL, type, keys, values, NULL);
}
else
{
b = gdk_pixbuf_savev(image, path, type, keys, values, NULL);
}
if (ok) {
......
......@@ -65,7 +65,7 @@ public:
void clear();
void resize(int width,int height);
int save(const char *path, int quality = -1);
int save(const char *path, int quality = -1, GdkPixbufSaveFunc func = NULL);
void fill(gColor col);
gPicture *copy(int x, int y, int w, int h);
......
......@@ -25,11 +25,12 @@
#include <string.h>
#include <qpixmap.h>
#include <qbitmap.h>
#include <qnamespace.h>
#include <qpainter.h>
#include <qmatrix.h>
#include <QPixmap>
#include <QBitmap>
#include <QPainter>
#include <QMatrix>
#include <QBuffer>
#ifdef OS_SOLARIS
/* Make math.h define M_PI and a few other things */
......@@ -145,6 +146,7 @@ CIMAGE *CIMAGE_create(QImage *image)
return img;
}
BEGIN_PROPERTY(Image_Picture)
CPICTURE *pict;
......@@ -164,6 +166,7 @@ BEGIN_PROPERTY(Image_Picture)
END_PROPERTY
BEGIN_METHOD(Image_Load, GB_STRING path)
QImage *p;
......@@ -196,6 +199,7 @@ BEGIN_METHOD(Image_FromString, GB_STRING data)
END_METHOD
BEGIN_METHOD(Image_Save, GB_STRING path; GB_INTEGER quality)
QString path = TO_QSTRING(GB.FileName(STRING(path), LENGTH(path)));
......@@ -213,10 +217,38 @@ BEGIN_METHOD(Image_Save, GB_STRING path; GB_INTEGER quality)
ok = QIMAGE->save(path, fmt, VARGOPT(quality, -1));
if (!ok)
GB.Error("Unable to save picture");
GB.Error("Unable to save image");
END_METHOD
BEGIN_METHOD(Image_ToString, GB_STRING format; GB_INTEGER quality)
QByteArray ba;
QString path = "." + TO_QSTRING(MISSING(format) ? "png" : GB.ToZeroString(ARG(format)));
bool ok = false;
const char *fmt = CIMAGE_get_format(path);
if (!fmt)
{
GB.Error("Unknown format");
return;
}
check_image(THIS);
QBuffer buffer(&ba);
buffer.open(QIODevice::WriteOnly);
ok = QIMAGE->save(&buffer, fmt, VARGOPT(quality, -1));
if (!ok)
GB.Error("Unable to convert image to a string");
GB.ReturnNewString(ba.constData(), ba.size());
END_METHOD
BEGIN_METHOD(Image_Stretch, GB_INTEGER width; GB_INTEGER height; GB_BOOLEAN fast)
//static int count = 0;
......@@ -325,6 +357,8 @@ BEGIN_METHOD(Image_PaintImage, GB_OBJECT img; GB_INTEGER x; GB_INTEGER y; GB_INT
END_METHOD
//-------------------------------------------------------------------------
GB_DESC CImageDesc[] =
{
GB_DECLARE("Image", sizeof(CIMAGE)),
......@@ -332,6 +366,7 @@ GB_DESC CImageDesc[] =
GB_STATIC_METHOD("Load", "Image", Image_Load, "(Path)s"),
GB_STATIC_METHOD("FromString", "Image", Image_FromString, "(Data)s"),
GB_METHOD("Save", NULL, Image_Save, "(Path)s[(Quality)i]"),
GB_METHOD("ToString", "s", Image_ToString, "[(Format)s(Quality)i]"),
GB_METHOD("Stretch", "Image", Image_Stretch, "(Width)i(Height)i[(Fast)b]"),
GB_METHOD("Rotate", "Image", Image_Rotate, "(Angle)f"),
......