Commit 0a7d8b49 authored by Martin Kozub's avatar Martin Kozub

VersioVersion 4.3.0-dev

development version of a new major release
* Added reflection tab for custom "hand made" skins.
parent 92dc5b88
#!/bin/sh
DIRECTORY=~/.steam/root/SteamApps
find $DIRECTORY -maxdepth 1 -type f -exec cat {} \; | grep -i "name" | sed 's/name//' | tr -d "\t\""
......@@ -8,11 +8,10 @@
# The tool and the skins are free to use, share and edit - under the terms of CC-BY license (Creative Commons).
#
# Develper mode ...
PREFIX=/home/zubozrout/Downloads/Devel/ssm4/
# PREDEFINED PATHS:
SKINPATH=$2
LOCALFILES=$PREFIX/usr/share/steam/skins
LOCALFILES=/usr/share/steam/skins
STEAMSKIN=~/.steam/root/skins
STEAMSETTINGS=~/.steam/registry.vdf
......
......@@ -6,7 +6,7 @@
# App variables:
app_name = Steam Skin Manager
version = 4.2.1-1
version = 4.3.0-dev
version_attribute = New Generation
# Set "remove_launcher_generator = yes" to remove this option from app's menu.
remove_launcher_generator = no
......
This source diff could not be displayed because it is too large. You can view the blob instead.
--help (-h), will show this screen
--timestamp (-t), will tell you when was the last time you launched this tool
--verson (-v), will display installed SSM version
--list-installed-games, will list installed Steam games
--apply-theme FOLDER_PATH, will config Steam to use theme from a defined folder
--revert-theme, will revert Steam to use the default Steam theme
......
"Friends/FriendsDialog.res"
{
controls
{
"FriendsDialog"
{
"ControlName" "CFriendsDialog"
"fieldName" "FriendsDialog"
"xpos" "2123"
"ypos" "549"
"wide" "356"
"tall" "746"
"AutoResize" "1"
"PinCorner" "0"
"enabled" "1"
"paintbackground" "1"
"settitlebarvisible" "1"
style="FriendsPanel"
closeonescape=1
}
"BuddyList"
{
"ControlName" "CFriendsListSubPanel"
tabposition=1
}
"frame_title"
{
"ControlName" "Label"
"labelText" "#SteamRootFriends"
"xpos" "0"
"ypos" "8"
"tall" "27"
style="FriendsTitle"
"textAlignment" "west"
"textAlignment" "center" [$OSX]
}
"DownLabel"
{
"ControlName" "Label"
"fieldName" "DownLabel"
"xpos" "10"
"ypos" "85"
"wide" "336"
"tall" "80"
"AutoResize" "1"
"PinCorner" "0"
"visible" "0"
"enabled" "1"
"paintbackground" "1"
"labelText" "#Friends_NoFriendsInList"
"textAlignment" "north-west"
"wrap" "1"
}
"MenuBar"
{
style="RootMenu"
"ControlName" "MenuBar"
"fieldName" "MenuBar"
"xpos" "29"
"ypos" "2"
"wide" "75"
"tall" "27"
"AutoResize" "0"
"PinCorner" "0"
"enabled" "1"
"paintbackground" "1"
zpos="-1"
}
"FriendPanelSelf"
{
"ControlName" "CFriendPanel"
"fieldName" "FriendPanelSelf"
"tall" "42"
"AutoResize" "0"
"PinCorner" "0"
"paintbackground" "1"
}
"AddFriendsButton"
{
style="AddFriendsButton"
"ControlName" "Button"
"fieldName" "AddFriendsButton"
"xpos" "10"
"ypos" "707"
"wide" "150"
"tall" "24"
"AutoResize" "0"
"PinCorner" "2"
"visible" "1"
"enabled" "1"
"tabPosition" "3"
"paintbackground" "1"
"labelText" "#Friends_AddFriend"
"textAlignment" "west"
"wrap" "0"
"Default" "0"
"selected" "0"
}
"NoFriendsAddFriendButton"
{
"ControlName" "Button"
"fieldName" "NoFriendsAddFriendButton"
"xpos" "10"
"ypos" "129"
"wide" "200"
"tall" "24"
"AutoResize" "0"
"PinCorner" "0"
"visible" "0"
"enabled" "1"
"paintbackground" "1"
"labelText" "#Friends_AddFriend"
"textAlignment" "west"
"wrap" "0"
"Default" "0"
"selected" "0"
}
"FriendsState"
{
"ControlName" "EditablePanel"
"fieldName" "FriendsState"
"xpos" "6"
"ypos" "52"
"wide" "310"
"tall" "457"
"AutoResize" "0"
"PinCorner" "0"
"visible" "0"
"enabled" "1"
"paintbackground" "1"
}
friends_search { ControlName=TextEntry maxchars=16 hintText="#steam_library_search" style="FriendsSearch" unicode=1 tabposition=2 }
friends_search_icon { ControlName=Label style="FriendsSearchIcon" zpos="4" }
}
styles
{
FriendsPanel
{
bgcolor="dialogBG"
render_bg
{
1="image( x0, y0, x1, y1, graphics/clienttexture2 )"
}
}
AddFriendsButton
{
font-family=basefont
font-size=14
font-size=13 [$OSX]
font-weight=400
padding-left=15
padding-right=0
textcolor="labelfocus"
bgcolor=none
render_bg
{
1="image( x0, y0 + 4, x0 + 200, y1, graphics/icon_collapse )"
}
}
AddFriendsButton:hover
{
textcolor="white"
render_bg
{
0="image( x0, y0 + 4, x1, y1, graphics/icon_collapse_over )"
}
}
RootMenu
{
bgcolor="none"
}
FriendsTitle
{
inset="0 0 0 0"
}
FriendsTitle
{
font-family=basefont
font-size=15
font-weight=400
textcolor="textdisabled"
bgcolor="none"
inset="0 9 0 0"
}
FriendsTitle:FrameFocus
{
font-family=basefont
font-size=15
font-weight=400
textcolor="texthover"
bgcolor="none"
inset="0 9 0 0"
}
"MenuBar MenuButton"
{
padding-right=14
render
{
0="image( x1-18, y0 + 11, x1-0, y1, graphics/icon_down_default )"
}
}
"MenuBar MenuButton:hover"
{
render
{
0="image( x1-18, y0 + 11, x1-0, y1, graphics/icon_down_hover )"
}
}
"MenuBar MenuButton:selected"
{
render
{
0="image( x1-18, y0 + 11, x1-0, y1, graphics/icon_down_hover )"
}
}
FriendsSearch
{
padding-left=-4
padding-top=1
font-family=basefont
font-size=14
font-weight=400
textcolor="text"
render { }
bgcolor=none
render_bg
{
// background fill
0="fill( x0 + 1, y0 + 1, x1+1, y1, dialogbg )"
}
}
FriendsSearch:empty
{
font-style=italic
textcolor="LabelDisabled"
}
FriendsSearch:hover
{
textcolor="texthover"
}
FriendsSearch:empty:hover
{
font-style=italic
textcolor="texthover"
}
FriendsSearch:disabled
{
font-style=italic
textcolor="None"
}
FriendsSearchIcon
{
bgcolor="none"
inset="4 2 0 0"
image="graphics/icon_button_search"
padding-left=0
padding-right=-1
padding-top=-1
render_bg
{
// background fill
0="fill( x0 + 2, y0 - 1, x1 + 2, y1 +3, dialogbg )"
}
}
FriendsSearchIcon:disabled
{
bgcolor="none"
inset="1 0 0 0"
image="none"
padding-left=0
padding-right=-1
render_bg
{
// background fill
0="fill( x0 + 1, y0 + 1, x1 - 1, y1 - 1, dialogbg )"
}
}
}
layout
{
place { control="frame_title" align=left x=0 y=0 width=max height=80 }
place { control="frame_close,frame_minimize" align=left margin-top=5 margin-left=10 spacing=-2 width=0 height=0 }
place { control="MenuBar" x=4 y=2 height=26 align=center }
// the title bar is missing, so increase the size of the grip
place { control="frame_captiongrip" margin=2 width=max height=38 }
place { control="friends_search" width=112 }
place { control="FriendPanelSelf,friends_search,FriendsDialogSheet" y=24 align=left margin-left=7 margin-right=7 margin-top=4 margin-bottom=38 width=max height=max dir=down spacing=3 }
place { control="friends_search_icon" margin-left=-2 start=FriendPanelSelf dir=down margin-top=5 }
place { control="friends_search" start=friends_search_icon dir=right margin-right=9 y=-2 margin-bottom=38 width=max }
place { control="addFriendsButton" align=bottom margin-left=16 margin-right=9 margin-bottom=7 height=24 }
}
}
"public/LimitedUserDialog.res" {
layout {
place { control="frame_close" align=left margin-top=5 margin-left=10 spacing=-2 width=0 height=0 }
}
}
"public/psnaccountsetupdialog.res" {
layout {
place { control="frame_close,frame_minimize" align=left margin-top=5 margin-left=10 spacing=-2 width=0 height=0 }
}
}
"public/ssasubpanel.res" {
layout {
place { control="frame_close,frame_minimize" align=left margin-top=5 margin-left=10 spacing=-2 width=0 height=0 }
}
}
"public/steamcacheworkdialog.res" {
layout {
place { control="frame_close,frame_minimize" align=left margin-top=5 margin-left=10 spacing=-2 width=0 height=0 }
}
}
"public/steamlogindialog.res" {
layout {
place { control="frame_close,frame_minimize" align=left margin-top=5 margin-left=10 spacing=-2 width=0 height=0 }
}
}
"public/useofflinemodechosen.res" {
layout {
place { control="frame_close,frame_minimize" align=left margin-top=5 margin-left=10 spacing=-2 width=0 height=0 }
}
}
"resource/layout/addfrienddialog.layout" {
layout {
place { control="frame_close,frame_minimize" align=left margin-top=5 margin-left=10 spacing=-2 width=0 height=0 }
}
}
"resource/layout/backupwizard.layout" {
layout {
place { control="frame_close,frame_minimize" align=left margin-top=5 margin-left=10 spacing=-2 width=0 height=0 }
}
}
"resource/layout/forgotpasswordwizard.layout" {
layout {
place { control="frame_close,frame_minimize" align=left margin-top=5 margin-left=10 spacing=-2 width=0 height=0 }
}
}
"resource/layout/gamespage_mini.layout" {
layout
{
place { control="frame_captiongrip" margin=2 width=max height=38 }
place { control="MenuBar" margin-left=50 height=24 margin-top=2}
place { control="frame_close,frame_minimize" align=left margin-top=5 margin-left=10 spacing=-2 width=0 height=0 }
place { control="subnavgroup_library" align=top-center y=28 height=26 width=max margin-right=9 margin-left=9 }
place { control="gameslist" align=left margin-left=10 margin-right=9 margin-top=56 margin-bottom=18 width=max height=max }
place { control="library_search" width=80 }
place { control="label_search_icon,library_search" align=left y=33 height=17 spacing=1 x=13 }
place { control="library_filters" align=right margin-left=10 margin-right=11 margin-top=31 height=22 spacing=1 }
}
}
"resource/layout/playersdialog.layout" {
layout {
place { control="frame_close,frame_minimize" align=left margin-top=5 margin-left=10 spacing=-2 width=0 height=0 }
}
}
"resource/layout/systeminfodialog.layout" {
layout {
place { control="frame_close,frame_minimize" align=left margin-top=5 margin-left=10 spacing=-2 width=0 height=0 }
}
}
"resource/layout/toolwindow.layout" {
layout {
place { control="frame_close,frame_minimize,frame_maximize" align=left margin-top=5 margin-left=10 spacing=-2 width=0 height=0 }
place { control="ToolWindowSheet" x=8 y=2 height=max width=max margin-right=8 }
}
}
"resource/layout/welcometosteamdialog.layout" {
layout {
place { control="frame_close,frame_minimize" align=left margin-top=5 margin-left=10 spacing=-2 width=0 height=0 }
}
}
"Servers/DialogServerBrowser.res" {
layout {
place { control="frame_close,frame_minimize" align=left margin-top=5 margin-left=10 spacing=-2 width=0 height=0 }
}
}
"steam/cached/aboutdialog.res" {
layout {
place { control="frame_close,frame_minimize" align=left margin-top=5 margin-left=10 spacing=-2 width=0 height=0 }
}
}
"steam/cached/addshortcutdialog.res" {
layout {
place { control="frame_close,frame_minimize" align=left margin-top=5 margin-left=10 spacing=-2 width=0 height=0 }
}
}
"steam/cached/defragappdialog.res" {
layout {
place { control="frame_close,frame_minimize" align=left margin-top=5 margin-left=10 spacing=-2 width=0 height=0 }
}
}
"steam/cached/DialogCheckForUpdates.res" {
layout {
place { control="frame_close,frame_minimize" align=left margin-top=5 margin-left=10 spacing=-2 width=0 height=0 }
}
}
"steam/cached/guestpassesdialog.res" {
layout {
place { control="frame_close,frame_minimize" align=left margin-top=5 margin-left=10 spacing=-2 width=0 height=0 }
}
}
"Steam/cached/JoinGameDialog.res" {
layout {
place { control="frame_close,frame_minimize" align=left margin-top=5 margin-left=10 spacing=-2 width=0 height=0 }
}
}
"Steam/cached/JoinGameDialogExpanded.res" {
layout {
place { control="frame_close,frame_minimize" align=left margin-top=5 margin-left=10 spacing=-2 width=0 height=0 }
}
}
"Steam/cached/JoinGameDialogExpanded_SSA.res" {
layout {
place { control="frame_close,frame_minimize" align=left margin-top=5 margin-left=10 spacing=-2 width=0 height=0 }
}
}
"steam/cached/launchparametersdialog.res" {
layout {
place { control="frame_close,frame_minimize" align=left margin-top=5 margin-left=10 spacing=-2 width=0 height=0 }
}
}
"steam/cached/SetJumplistOptions.res" {
layout {
place { control="frame_close,frame_minimize" align=left margin-top=5 margin-left=10 spacing=-2 width=0 height=0 }
}
}
"steam/cached/updatenewsdialog.res" {
layout {
place { control="frame_close,frame_minimize" align=left margin-top=5 margin-left=10 spacing=-2 width=0 height=0 }
}
}
This diff is collapsed.
......@@ -30,7 +30,7 @@
<ol>
<li>Your folder's name placed in the directory is the Skin's name, that appears to the user.</li>
<li>There <strong>should be two folders inside</strong> your directory, "no-buttons" and "with-buttons".<br>"no-buttons" is the directory without window buttons (this modification is prepared for using native window border) whilst the other folder contains window buttons - maximize,minimize,close - and can be used on it's own with Steam. If you don't intend to create both versions you can omit both folders, however, if you wish to create "no-buttons" version only, you'll have to put the content to the folder of the same name so that Steam Skin Manager can recognize your skin correctly.</li>
<li><strong>Description in an optional</strong> file, only one per both theme variants, placed in the root directory of your theme. It must be called "description.txt" and can take advantage of some basic html tags, like - bold,italic,underline,link -. It is recommended to keep the description file shorter rather than long.</li>
<li><strong>Description is an optional</strong> file, only one per both theme variants, placed in the root directory of your theme. It must be called "description.txt" and can take advantage of some basic html tags, like - bold,italic,underline,link -. It is recommended to keep the description file shorter rather than long.</li>
<li><strong>Preview is another optional</strong> file and if used it must be called "preview.png". There is again only one file for both variants, located in the root directory of your theme. This should be a screenshot of Steam window with the applied theme. Images are resized to 512x314px when previewed.</li>
</ol>
</section>
......
This diff is collapsed.
This diff is collapsed.
......@@ -5,6 +5,7 @@
#include "WebView.cpp"
#include "ManualEditor.cpp"
#include "Reflection.cpp"
#include "AboutWindow.cpp"
#include "MainWindow.h"
......@@ -18,9 +19,9 @@ MainWindow::MainWindow(int argc, char* argv[], Settings & linked_settings): sett
try {
builder = Gtk::Builder::create_from_file(settings.get_working_path() + settings.Key("ui_path"));
}
catch (const Glib::FileError & ex) {
catch(const Glib::FileError &ex) {
std::cerr << ex.what() << std::endl;
}
}
#include "MainWindowBuilder.connect"
......@@ -33,6 +34,7 @@ MainWindow::MainWindow(int argc, char* argv[], Settings & linked_settings): sett
launch_steam_from_toolbar->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::SteamLauncher));
apply->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::ApplyTheme));
use_decorations->property_active().signal_changed().connect(sigc::mem_fun(*this, &MainWindow::SetPreviewName));
notebook->signal_switch_page().connect(sigc::mem_fun(*this, &MainWindow::PageSwitched));
//Translatable init strings
#include "translate_gui.strings"
......@@ -43,6 +45,7 @@ MainWindow::MainWindow(int argc, char* argv[], Settings & linked_settings): sett
// Combobox settings
ListAvaialbleThemes(settings.get_working_path() + settings.GetPath("theme"));
ListAvaialbleThemes(settings.Key("old_theme_path")); /* Steam Skin Manager (3.x) and older backward compatibility */
ListAvaialbleThemes(settings.GetLocalPath() + "themes/"); /* Steam Skin Manager (4.3+) user's reflection themes */
// State Change signals
comboboxsignal = comboboxthemes->signal_changed().connect(sigc::group(sigc::mem_fun(*this, &MainWindow::PreviewTheme), true));
......@@ -60,6 +63,7 @@ MainWindow::MainWindow(int argc, char* argv[], Settings & linked_settings): sett
// Load other tabs
WebView web(builder, settings);
manualeditor = new ManualEditor(builder, settings);
reflection = nullptr;
if(window) {
// SystemColors
......@@ -76,6 +80,15 @@ MainWindow::MainWindow(int argc, char* argv[], Settings & linked_settings): sett
}
}
void MainWindow::PageSwitched(Gtk::Widget *page, guint page_num) {
if(reflection == nullptr && page_num == 2) {
reflection = new Reflection(builder, settings);
}
if(page_num == 0) {
ListAvaialbleThemes(settings.GetLocalPath() + "themes/", false); /* Steam Skin Manager (4.3+) user's reflection themes */
}
}
void MainWindow::SetToolButtonSize(Gtk::ToolButton* button, int sizeX, int sizeY) {
if(sizeX < 0 && sizeY < 0) {
Gtk::IconSize::lookup(button->get_icon_size(), sizeX, sizeY);
......@@ -267,7 +280,7 @@ void MainWindow::SteamLauncher() {
SteamLauncherThread(use_decorations->get_active());
}
void MainWindow::ListAvaialbleThemes(string path) {
void MainWindow::ListAvaialbleThemes(string path, bool repeat) {
vector<string> test = settings.GetListOfAvaialbleFolders(path);
string theme = settings.GetSystemTheme();
......@@ -280,6 +293,12 @@ void MainWindow::ListAvaialbleThemes(string path) {
}
for(vector<string>::iterator it = test.begin(); it != test.end(); ++it) {
if(!repeat) {
if(find(bundledSkins.begin(), bundledSkins.end(), path + string(*it)) != bundledSkins.end()) {
continue;
}
}
comboboxthemes->insert(i, (*it));
bundledSkins.push_back(path + (*it));
......@@ -309,5 +328,8 @@ MainWindow::~MainWindow() {
delete manualeditor;
delete skin;
delete steamlaunch;
if(reflection != nullptr) {
delete reflection;
}
cout << "Bye Bye " << getenv("USER") << " ..." << endl;
}
......@@ -14,6 +14,7 @@ class MainWindow {
string defaultskin = "Default Skin";
Gtk::Window* window;
Gtk::Notebook* notebook;