Add internal backgrounds
This commit is contained in:
parent
e9fb7fd3ec
commit
273b372dc2
|
@ -0,0 +1,36 @@
|
||||||
|
<svg width="64" height="64" version="1.1" viewBox="0 0 16.933 16.933" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="linearGradient897-3" x1="6.8792" x2="6.8792" y1="285.36" y2="283.77" gradientTransform="matrix(.99998 0 0 .99998 0 -280.06)" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop offset="0"/>
|
||||||
|
<stop stop-opacity="0" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="linearGradient1769-5" x1="445.28" x2="445.28" y1="179.28" y2="200.07" gradientTransform="matrix(.38956 0 0 .38184 -165.52 -63.44)" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#60c0f0" offset="0"/>
|
||||||
|
<stop stop-color="#83d4fb" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="linearGradient860-6" x1="8.4667" x2="8.4667" y1="293.3" y2="292.77" gradientTransform="translate(0,-280.07)" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#008ea2" stop-opacity=".25" offset="0"/>
|
||||||
|
<stop stop-color="#fff" stop-opacity=".15" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="linearGradient868-1" x1="8.4667" x2="8.4667" y1="294.62" y2="293.56" gradientTransform="matrix(.99998 0 0 .99998 0 -280.06)" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#008ea2" stop-opacity=".25098" offset="0"/>
|
||||||
|
<stop stop-color="#008ea2" stop-opacity=".15" offset=".75678"/>
|
||||||
|
<stop stop-color="#fff" stop-opacity=".15" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="linearGradient907-9" x1="1.0583" x2="15.875" y1="289.59" y2="289.59" gradientTransform="translate(0,-280.07)" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#46a2d7" stop-opacity=".5" offset="0"/>
|
||||||
|
<stop stop-color="#46a2d7" stop-opacity="0" offset=".10783"/>
|
||||||
|
<stop stop-color="#46a2d7" stop-opacity=".095808" offset=".89398"/>
|
||||||
|
<stop stop-color="#46a2d7" stop-opacity=".5" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<image x=".52916" y="1.969" width="15.875" height="13.229" image-rendering="optimizeQuality" preserveAspectRatio="none" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAyCAYAAAAA9rgCAAAACXBIWXMAAA7XAAAO1wFxhj+8AAAA GXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAbVJREFUaIHtml9TglAQRw9/jMrR 6a3v//2q0azMFOhhuXJLRgHv5G3dM8PgqHA57C68/BIOSbxtCLW3RUvy63MOFMAESOkvXQMlsAW+ gB2RiifevgDmwANwB2QDz7UD1sASWAEboApzmeHIaSs7Bx6Bmff9EGpgCtwjN2+B3ICSiKqdN/sC qewMaeehsjTH3CCd4UbjBXhHWv0S0gdrukpOkDYeU1kf1y3T5pwF0uJviHTVdREd5+izzilqZMxK vNFyglmznSPrkyKyGdLia2Sm+1T61BsiPXGsYwd8Ijd7TXOzc++PoWT9xSe07V0RpsJD3hwbpMOe kNEq86OHhMG1+SVm2D1TSuR1Wf2FsCN0B/Vd8xZ5GC+Ar2PzoIWMdrSSaxAG7xllwtoxYe2YsHZM WDsmrB0T1o4Ja8eEtWPC2jFh7ZiwdkxYOyasHRPWjglr52qFo48MnsneL6WNDfYJnPxHasStBGon vEWiPdFmJEfislofNJEpl82q+RkzukQAJTROdgU8I3mtKvd+WNJmm8aES2OjRLp2AbzSdG+o+HBs uLndIgXcj2qX0NiAeGx0Bta/AZSga/2YDpsuAAAAAElFTkSuQmCC "/>
|
||||||
|
<path d="m2.21 2.38h2.695c0.75074 0 0.78302 0.0285 1.5421 0.62962 0.78159 0.5904 0.94779 0.607 1.8636 0.607l6.4126-0.0524c0.638-5e-3 1.1517 0.51363 1.1517 1.1516v6.77c0 0.63802-0.51364 1.1517-1.1517 1.1517h-12.513c-0.63802 0-1.1517-0.51364-1.1517-1.1517v-7.9542c0-0.63802 0.51364-1.1517 1.1517-1.1517z" fill="#46a2d7"/>
|
||||||
|
<path d="m2.2102 2.3812c-0.63801 0-1.1518 0.51384-1.1518 1.1518v2.8167h14.816v-1.633c0-0.63801-0.51387-1.1563-1.1518-1.1513l-6.4124 0.052194c-0.91582 0-1.0818-0.016798-1.8634-0.60718-0.75908-0.6011-0.79128-0.62941-1.542-0.62941h-2.695z" fill="url(#linearGradient897-3)" opacity=".35" stroke-width=".26458"/>
|
||||||
|
<rect x="1.0583" y="4.49" width="14.817" height="10.054" rx="1.1517" ry="1.1288" fill="url(#linearGradient1769-5)"/>
|
||||||
|
<rect x="1.0583" y="12.7" width="14.817" height=".52915" fill="url(#linearGradient860-6)"/>
|
||||||
|
<path d="m1.0655 13.494c0.03752 0.59168 0.5312 1.0583 1.1446 1.0583h12.513c0.6134 0 1.1071-0.46664 1.1446-1.0583h-14.802z" fill="url(#linearGradient868-1)" stroke-width=".26458"/>
|
||||||
|
<rect x="1.0583" y="4.49" width="14.817" height="10.054" rx="1.1517" ry="1.1288" fill="url(#linearGradient907-9)"/>
|
||||||
|
<path d="m2.2102 4.4979c-0.63801 0-1.1518 0.50323-1.1518 1.1286v0.23512c0-0.6089 0.51384-1.0991 1.1518-1.0991h12.513c0.63801 0 1.1518 0.49024 1.1518 1.0991v-0.23512c0-0.62536-0.51384-1.1286-1.1518-1.1286z" fill="#ffffff" opacity=".1" stroke-width=".26458"/>
|
||||||
|
<path class="ColorScheme-Text" d="m5.78 6.3295c-0.49611 0-0.89549 0.39938-0.89549 0.89549v4.0298c0 0.49611 0.39938 0.89549 0.89549 0.89549h5.3731c0.49611 0 0.89549-0.39938 0.89549-0.89549v-4.0298c0-0.49611-0.39938-0.89549-0.89549-0.89549zm0 0.44775h5.3731c0.24805 0 0.44775 0.1997 0.44775 0.44775v4.0298l-2.2387-2.2387-1.5579 1.791-1.1286-0.89549-1.3432 1.3432v-4.0298c0-0.24805 0.1997-0.44775 0.44775-0.44775zm1.1194 0.89549c-0.37094 0-0.67163 0.30069-0.67163 0.67163 0 0.37094 0.30069 0.67163 0.67163 0.67163 0.37094 0 0.67163-0.30069 0.67163-0.67163 0-0.37094-0.30069-0.67163-0.67163-0.67163z" color="#363636" fill="#000000" opacity=".15" stroke-width=".44775"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 4.7 KiB |
|
@ -25,7 +25,8 @@ link_directories (${GTKMM3_LIBRARY_DIRS})
|
||||||
set(RESOURCE_LIST
|
set(RESOURCE_LIST
|
||||||
icons/16x16/actions/list-add.svg
|
icons/16x16/actions/list-add.svg
|
||||||
icons/16x16/actions/list-remove.svg
|
icons/16x16/actions/list-remove.svg
|
||||||
folder.svg)
|
folder.svg
|
||||||
|
folder-images.svg)
|
||||||
|
|
||||||
compile_gresources(RESOURCE_FILE
|
compile_gresources(RESOURCE_FILE
|
||||||
XML_OUT
|
XML_OUT
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
#include "MyPrefs.hh"
|
#include "MyPrefs.hh"
|
||||||
|
#include "winpe.xpm"
|
||||||
|
#include "../Gtk4/img7.xpm"
|
||||||
|
|
||||||
MyPrefs::MyPrefs()
|
MyPrefs::MyPrefs()
|
||||||
: main_box(Gtk::ORIENTATION_VERTICAL, 10),
|
: main_box(Gtk::ORIENTATION_VERTICAL, 10),
|
||||||
|
@ -12,29 +14,48 @@ MyPrefs::MyPrefs()
|
||||||
// Initalize Stores
|
// Initalize Stores
|
||||||
folders_store = Gtk::ListStore::create(n_columns);
|
folders_store = Gtk::ListStore::create(n_columns);
|
||||||
folders_view.set_model(folders_store);
|
folders_view.set_model(folders_store);
|
||||||
|
folder_selection = folders_view.get_selection();
|
||||||
|
folder_selection->signal_changed().connect(sigc::mem_fun(*this, &MyPrefs::folders_view_changed));
|
||||||
|
|
||||||
images_store = Gtk::ListStore::create(n_columns);
|
images_store = Gtk::ListStore::create(n_columns);
|
||||||
images_view.set_model(images_store);
|
images_view.set_model(images_store);
|
||||||
|
image_selection = images_view.get_selection();
|
||||||
|
image_selection->signal_changed().connect(sigc::mem_fun(*this, &MyPrefs::images_view_changed));
|
||||||
|
|
||||||
// Load Pixbufs
|
// Load Pixbufs
|
||||||
auto pixbuf = Gdk::Pixbuf::create_from_resource("/org/gtk/daleclack/folder.svg");
|
auto pixbuf = Gdk::Pixbuf::create_from_resource("/org/gtk/daleclack/folder.svg");
|
||||||
folder_pixbuf = pixbuf->scale_simple(24,24,Gdk::INTERP_BILINEAR);
|
folder_pixbuf = pixbuf->scale_simple(24, 24, Gdk::INTERP_BILINEAR);
|
||||||
|
pixbuf.reset();
|
||||||
|
pixbuf = Gdk::Pixbuf::create_from_resource("/org/gtk/daleclack/folder-images.svg");
|
||||||
|
image_pixbuf = pixbuf->scale_simple(24, 24, Gdk::INTERP_BILINEAR);
|
||||||
|
pixbuf.reset();
|
||||||
|
|
||||||
// Add Default Value for folders view
|
// Add Default Value for folders view
|
||||||
auto row = *(folders_store->append());
|
auto row = *(folders_store->append());
|
||||||
|
row[n_columns.m_col_path] = "";
|
||||||
|
row[n_columns.m_col_name] = "Default Backgrounds";
|
||||||
|
row[n_columns.m_col_pixbuf] = folder_pixbuf;
|
||||||
|
row[n_columns.m_col_internal] = true;
|
||||||
|
|
||||||
|
row = *(folders_store->append());
|
||||||
row[n_columns.m_col_path] = Glib::get_home_dir();
|
row[n_columns.m_col_path] = Glib::get_home_dir();
|
||||||
row[n_columns.m_col_name] = "User's Home";
|
row[n_columns.m_col_name] = "User's Home";
|
||||||
row[n_columns.m_col_pixbuf] = folder_pixbuf;
|
row[n_columns.m_col_pixbuf] = folder_pixbuf;
|
||||||
folders_view.append_column(" ",n_columns.m_col_pixbuf);
|
row[n_columns.m_col_internal] = false;
|
||||||
folders_view.append_column("Folders", n_columns.m_col_name);
|
|
||||||
|
|
||||||
row = *(folders_store->append());
|
row = *(folders_store->append());
|
||||||
row[n_columns.m_col_path] = Glib::get_user_special_dir(Glib::USER_DIRECTORY_PICTURES);
|
row[n_columns.m_col_path] = Glib::get_user_special_dir(Glib::USER_DIRECTORY_PICTURES);
|
||||||
row[n_columns.m_col_name] = "User's Pictures Directory";
|
row[n_columns.m_col_name] = "User's Pictures Directory";
|
||||||
row[n_columns.m_col_pixbuf] = folder_pixbuf;
|
row[n_columns.m_col_pixbuf] = image_pixbuf;
|
||||||
|
row[n_columns.m_col_internal] = false;
|
||||||
|
|
||||||
|
// Append Column for the folders view
|
||||||
|
folders_view.append_column(" ", n_columns.m_col_pixbuf);
|
||||||
|
folders_view.append_column("Name", n_columns.m_col_name);
|
||||||
|
|
||||||
// Default Value for imags view
|
// Default Value for imags view
|
||||||
row = *(images_store->append());
|
default_folders_view();
|
||||||
row[n_columns.m_col_name] = "Test";
|
images_view.append_column(" ", n_columns.m_col_pixbuf);
|
||||||
images_view.append_column("Images", n_columns.m_col_name);
|
images_view.append_column("Images", n_columns.m_col_name);
|
||||||
|
|
||||||
// Add Views
|
// Add Views
|
||||||
|
@ -48,7 +69,7 @@ MyPrefs::MyPrefs()
|
||||||
btnadd.set_image_from_icon_name("list-add");
|
btnadd.set_image_from_icon_name("list-add");
|
||||||
btnadd.signal_clicked().connect(sigc::mem_fun(*this, &MyPrefs::btnadd_clicked));
|
btnadd.signal_clicked().connect(sigc::mem_fun(*this, &MyPrefs::btnadd_clicked));
|
||||||
btnremove.set_image_from_icon_name("list-remove");
|
btnremove.set_image_from_icon_name("list-remove");
|
||||||
btnremove.signal_clicked().connect(sigc::mem_fun(*this,&MyPrefs::btnremove_clicked));
|
btnremove.signal_clicked().connect(sigc::mem_fun(*this, &MyPrefs::btnremove_clicked));
|
||||||
btnbox.pack_start(btnadd, Gtk::PACK_SHRINK);
|
btnbox.pack_start(btnadd, Gtk::PACK_SHRINK);
|
||||||
btnbox.pack_start(btnremove, Gtk::PACK_SHRINK);
|
btnbox.pack_start(btnremove, Gtk::PACK_SHRINK);
|
||||||
main_box.pack_start(btnbox, Gtk::PACK_SHRINK);
|
main_box.pack_start(btnbox, Gtk::PACK_SHRINK);
|
||||||
|
@ -94,18 +115,79 @@ void MyPrefs::dialog_response(int response_id)
|
||||||
dialog.reset();
|
dialog.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MyPrefs::btnremove_clicked() {
|
void MyPrefs::btnremove_clicked()
|
||||||
|
{
|
||||||
// Get the selection and remove the selected item
|
// Get the selection and remove the selected item
|
||||||
selection = folders_view.get_selection();
|
auto iter = folder_selection->get_selected();
|
||||||
auto iter = selection->get_selected();
|
if (iter)
|
||||||
if(iter){
|
{
|
||||||
folders_store->erase(iter);
|
folders_store->erase(iter);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MyPrefs::folders_view_changed(){}
|
void MyPrefs::folders_view_changed()
|
||||||
|
{
|
||||||
|
// Get Selected Folder
|
||||||
|
auto row = *(folder_selection->get_selected());
|
||||||
|
if (row[n_columns.m_col_internal])
|
||||||
|
{
|
||||||
|
// The default folder
|
||||||
|
default_folders_view();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// User defined folder
|
||||||
|
images_store->clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void MyPrefs::images_view_changed(){}
|
void MyPrefs::default_folders_view()
|
||||||
|
{
|
||||||
|
// Clear the store
|
||||||
|
images_store->clear();
|
||||||
|
|
||||||
|
// Add Default values
|
||||||
|
auto row = *(images_store->append());
|
||||||
|
row[n_columns.m_col_path] = ":1";
|
||||||
|
row[n_columns.m_col_name] = "winpe.xpm";
|
||||||
|
row[n_columns.m_col_internal] = true;
|
||||||
|
row[n_columns.m_col_pixbuf] = image_pixbuf;
|
||||||
|
|
||||||
|
row = *(images_store->append());
|
||||||
|
row[n_columns.m_col_path] = ":2";
|
||||||
|
row[n_columns.m_col_name] = "img7.xpm";
|
||||||
|
row[n_columns.m_col_internal] = true;
|
||||||
|
row[n_columns.m_col_pixbuf] = image_pixbuf;
|
||||||
|
}
|
||||||
|
|
||||||
|
void MyPrefs::images_view_changed()
|
||||||
|
{
|
||||||
|
// Set the background as selected
|
||||||
|
auto row = *(image_selection->get_selected());
|
||||||
|
if (row[n_columns.m_col_internal])
|
||||||
|
{
|
||||||
|
std::string path = row[n_columns.m_col_path];
|
||||||
|
switch (path[1])
|
||||||
|
{
|
||||||
|
case '1':
|
||||||
|
set_background_internal(winpe);
|
||||||
|
break;
|
||||||
|
case '2':
|
||||||
|
set_background_internal(img7);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void MyPrefs::set_background_internal(const char *const *data)
|
||||||
|
{
|
||||||
|
// Set a internal background
|
||||||
|
auto pixbuf = Gdk::Pixbuf::create_from_xpm_data(data);
|
||||||
|
auto sized = pixbuf->scale_simple(1024, 576, Gdk::INTERP_BILINEAR);
|
||||||
|
gtk_image_set_from_pixbuf(background1->gobj(), sized->gobj());
|
||||||
|
pixbuf.reset();
|
||||||
|
sized.reset();
|
||||||
|
}
|
||||||
|
|
||||||
void MyPrefs::set_background(Gtk::Image *back)
|
void MyPrefs::set_background(Gtk::Image *back)
|
||||||
{
|
{
|
||||||
|
|
|
@ -17,10 +17,12 @@ protected:
|
||||||
add(m_col_pixbuf);
|
add(m_col_pixbuf);
|
||||||
add(m_col_path);
|
add(m_col_path);
|
||||||
add(m_col_name);
|
add(m_col_name);
|
||||||
|
add(m_col_internal);
|
||||||
}
|
}
|
||||||
Gtk::TreeModelColumn<Glib::RefPtr<Gdk::Pixbuf>> m_col_pixbuf;
|
Gtk::TreeModelColumn<Glib::RefPtr<Gdk::Pixbuf>> m_col_pixbuf;
|
||||||
Gtk::TreeModelColumn<std::string> m_col_path;
|
Gtk::TreeModelColumn<std::string> m_col_path;
|
||||||
Gtk::TreeModelColumn<Glib::ustring> m_col_name;
|
Gtk::TreeModelColumn<Glib::ustring> m_col_name;
|
||||||
|
Gtk::TreeModelColumn<bool> m_col_internal;
|
||||||
};
|
};
|
||||||
|
|
||||||
ModelColumns n_columns;
|
ModelColumns n_columns;
|
||||||
|
@ -37,15 +39,17 @@ private:
|
||||||
Gtk::Button btnadd, btnremove;
|
Gtk::Button btnadd, btnremove;
|
||||||
|
|
||||||
//Folder Open Dialog
|
//Folder Open Dialog
|
||||||
Glib::RefPtr<Gdk::Pixbuf> folder_pixbuf;
|
Glib::RefPtr<Gdk::Pixbuf> folder_pixbuf, image_pixbuf;
|
||||||
Glib::RefPtr<Gtk::FileChooserNative> dialog;
|
Glib::RefPtr<Gtk::FileChooserNative> dialog;
|
||||||
void dialog_response(int response_id);
|
void dialog_response(int response_id);
|
||||||
|
|
||||||
Glib::RefPtr<Gtk::TreeSelection> selection;
|
Glib::RefPtr<Gtk::TreeSelection> folder_selection, image_selection;
|
||||||
|
|
||||||
//Signal Handlers
|
//Signal Handlers
|
||||||
void btnadd_clicked();
|
void btnadd_clicked();
|
||||||
void btnremove_clicked();
|
void btnremove_clicked();
|
||||||
void folders_view_changed();
|
void folders_view_changed();
|
||||||
void images_view_changed();
|
void images_view_changed();
|
||||||
};
|
void default_folders_view();
|
||||||
|
void set_background_internal(const char * const * data);
|
||||||
|
};
|
||||||
|
|
Loading…
Reference in New Issue