Enhancement: Fixes #273, Scaffold mspaint

This commit is contained in:
Rory Fewell
2024-02-13 00:06:58 +00:00
parent e8125ae862
commit 977df806a5
67 changed files with 2070 additions and 6 deletions

View File

@@ -10,6 +10,8 @@ The contents of this directory is as follows:
`archpkg/` - Arch Linux (`.pkg.tar.zst`) packaging implementation
`bsdpkg/` - FreeBSD (`.pkg`) packaging implementation
`deb/` - Debian (`.deb`) packaging implementation
`build.sh` - build script for compiling a single component

View File

@@ -264,6 +264,11 @@ static const gchar* translate_widget_text(
gchar* text_punc = NULL;
gchar* text_str = NULL;
if (!widget_text)
{
return NULL;
}
if (!g_regex_match(s_langstr_regex, widget_text, 0, &match_info))
{
return ret;

View File

@@ -267,7 +267,7 @@ static void wintc_run_dialog_finalize(
GObject* object
)
{
(*G_OBJECT_CLASS(wintc_run_dialog_parent_class)->finalize) (object);
(G_OBJECT_CLASS(wintc_run_dialog_parent_class))->finalize(object);
}
//

View File

@@ -0,0 +1,97 @@
cmake_minimum_required(VERSION 3.5)
project(
wintc-mspaint
VERSION 1.0
DESCRIPTION "Windows Total Conversion Paint application."
LANGUAGES C
)
set(PROJECT_ANYARCH false)
set(PROJECT_FREESTATUS true)
set(PROJECT_MAINTAINER "Rory Fewell <roryf@oddmatics.uk>")
set(PROJECT_ROOT ${CMAKE_CURRENT_LIST_DIR})
include(GNUInstallDirs)
include(../../packaging/cmake-inc/common/CMakeLists.txt)
include(../../packaging/cmake-inc/linking/CMakeLists.txt)
include(../../packaging/cmake-inc/locale/CMakeLists.txt)
include(../../packaging/cmake-inc/packaging/CMakeLists.txt)
include(../../packaging/cmake-inc/resources/CMakeLists.txt)
wintc_resolve_library(glib-2.0 GLIB)
wintc_resolve_library(gtk+-3.0 GTK3)
wintc_resolve_library(wintc-comgtk WINTC_COMGTK)
wintc_resolve_library(wintc-shllang WINTC_SHLLANG)
wintc_compile_resources()
wintc_create_meta_h()
add_executable(
wintc-mspaint
src/application.c
src/application.h
src/main.c
src/meta.h
src/resources.c
src/window.c
src/window.h
)
set_target_properties(
wintc-mspaint
PROPERTIES
OUTPUT_NAME mspaint
)
target_compile_options(
wintc-mspaint
PRIVATE ${WINTC_COMPILE_OPTIONS}
)
target_include_directories(
wintc-mspaint
SYSTEM
PRIVATE ${GLIB_INCLUDE_DIRS}
PRIVATE ${GTK3_INCLUDE_DIRS}
PRIVATE ${WINTC_COMGTK_INCLUDE_DIRS}
PRIVATE ${WINTC_SHLLANG_INCLUDE_DIRS}
)
target_link_directories(
wintc-mspaint
PRIVATE ${GLIB_LIBRARY_DIRS}
PRIVATE ${GTK3_LIBRARY_DIRS}
PRIVATE ${WINTC_COMGTK_LIBRARY_DIRS}
PRIVATE ${WINTC_SHLLANG_LIBRARY_DIRS}
)
target_link_libraries(
wintc-mspaint
PRIVATE ${GLIB_LIBRARIES}
PRIVATE ${GTK3_LIBRARIES}
PRIVATE ${WINTC_COMGTK_LIBRARIES}
PRIVATE ${WINTC_SHLLANG_LIBRARIES}
)
add_dependencies(
wintc-mspaint
build-gresources
)
# Installation
#
wintc_configure_and_install_packaging()
wintc_install_icons_into_package()
wintc_compile_and_install_pofiles()
install(
FILES mspaint.desktop
DESTINATION share/applications
)
install(
TARGETS wintc-mspaint
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)

View File

@@ -0,0 +1,4 @@
# mspaint
This directory contains the source code for *Paint*.
![image](https://github.com/rozniak/xfce-winxp-tc/assets/13258281/814b4cef-3870-469c-9661-9433fde045ae)

4
windows/mspaint/deps Normal file
View File

@@ -0,0 +1,4 @@
bt,rt:glib2
bt,rt:gtk3
bt,rt:wintc-comgtk
bt,rt:wintc-shllang

Binary file not shown.

After

Width:  |  Height:  |  Size: 910 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -0,0 +1,10 @@
[Desktop Entry]
Name=Paint
Comment=Creates and edits drawings, and displays and edits scanned photos.
Exec=mspaint %F
Icon=mspaint
Terminal=false
StartupNotify=false
Type=Application
Categories=Utility;Graphics;RasterGraphics;GTK;
MimeType=image/bmp;image/gif;image/jpeg;image/png;image/tiff;image/vnd.microsoft.icon;

View File

@@ -0,0 +1,20 @@
# Arabic translations for PACKAGE package.
# Copyright (C) 2024 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-12 00:51+0000\n"
"PO-Revision-Date: 2024-02-12 00:51+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: ar_SA\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "Paint"
msgstr "الرسام"

View File

@@ -0,0 +1,21 @@
# Bulgarian translations for PACKAGE package.
# Copyright (C) 2024 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-12 00:51+0000\n"
"PO-Revision-Date: 2024-02-12 00:51+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: bg\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Paint"
msgstr "Paint"

View File

@@ -0,0 +1,21 @@
# Czech translations for PACKAGE package.
# Copyright (C) 2024 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-12 00:51+0000\n"
"PO-Revision-Date: 2024-02-12 00:51+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: cs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
msgid "Paint"
msgstr "Malování"

View File

@@ -0,0 +1,21 @@
# Danish translations for PACKAGE package.
# Copyright (C) 2024 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-12 00:51+0000\n"
"PO-Revision-Date: 2024-02-12 00:51+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: da\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Paint"
msgstr "Paint"

View File

@@ -0,0 +1,21 @@
# German translations for PACKAGE package.
# Copyright (C) 2024 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-12 00:51+0000\n"
"PO-Revision-Date: 2024-02-12 00:51+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Paint"
msgstr "Paint"

View File

@@ -0,0 +1,21 @@
# Greek translations for PACKAGE package.
# Copyright (C) 2024 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-12 00:51+0000\n"
"PO-Revision-Date: 2024-02-12 00:51+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: el\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Paint"
msgstr "Ζωγραφική"

View File

@@ -0,0 +1,21 @@
# Spanish translations for PACKAGE package.
# Copyright (C) 2024 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-12 00:51+0000\n"
"PO-Revision-Date: 2024-02-12 00:51+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Paint"
msgstr "Paint"

View File

@@ -0,0 +1,21 @@
# Estonian translations for PACKAGE package.
# Copyright (C) 2024 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-12 00:51+0000\n"
"PO-Revision-Date: 2024-02-12 00:51+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: et\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Paint"
msgstr "Paint"

View File

@@ -0,0 +1,21 @@
# Finnish translations for PACKAGE package.
# Copyright (C) 2024 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-12 00:51+0000\n"
"PO-Revision-Date: 2024-02-12 00:51+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: fi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Paint"
msgstr "Paint"

View File

@@ -0,0 +1,21 @@
# French translations for PACKAGE package.
# Copyright (C) 2024 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-12 00:51+0000\n"
"PO-Revision-Date: 2024-02-12 00:51+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
msgid "Paint"
msgstr "Paint"

View File

@@ -0,0 +1,21 @@
# Hebrew translations for PACKAGE package.
# Copyright (C) 2024 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-12 00:51+0000\n"
"PO-Revision-Date: 2024-02-12 00:51+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: he\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Paint"
msgstr "צייר"

View File

@@ -0,0 +1,22 @@
# Croatian translations for PACKAGE package.
# Copyright (C) 2024 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-12 00:51+0000\n"
"PO-Revision-Date: 2024-02-12 00:51+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: hr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
msgid "Paint"
msgstr "Bojanje"

View File

@@ -0,0 +1,21 @@
# Hungarian translations for PACKAGE package.
# Copyright (C) 2024 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-12 00:51+0000\n"
"PO-Revision-Date: 2024-02-12 00:51+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: hu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Paint"
msgstr "Paint"

View File

@@ -0,0 +1,21 @@
# Italian translations for PACKAGE package.
# Copyright (C) 2024 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-12 00:51+0000\n"
"PO-Revision-Date: 2024-02-12 00:51+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Paint"
msgstr "Paint"

View File

@@ -0,0 +1,21 @@
# Japanese translations for PACKAGE package.
# Copyright (C) 2024 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-12 00:51+0000\n"
"PO-Revision-Date: 2024-02-12 00:51+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
msgid "Paint"
msgstr "ペイント"

View File

@@ -0,0 +1,21 @@
# Korean translations for PACKAGE package.
# Copyright (C) 2024 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-12 00:51+0000\n"
"PO-Revision-Date: 2024-02-12 00:51+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: ko\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
msgid "Paint"
msgstr "그림판"

View File

@@ -0,0 +1,22 @@
# Lithuanian translations for PACKAGE package.
# Copyright (C) 2024 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-12 00:51+0000\n"
"PO-Revision-Date: 2024-02-12 00:51+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: lt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"(n%100<10 || n%100>=20) ? 1 : 2);\n"
msgid "Paint"
msgstr "Programa Piešimas"

View File

@@ -0,0 +1,22 @@
# Latvian translations for PACKAGE package.
# Copyright (C) 2024 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-12 00:51+0000\n"
"PO-Revision-Date: 2024-02-12 00:51+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: lv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : "
"2);\n"
msgid "Paint"
msgstr "Molberts"

View File

@@ -0,0 +1,21 @@
# Norwegian Bokmal translations for PACKAGE package.
# Copyright (C) 2024 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-12 00:51+0000\n"
"PO-Revision-Date: 2024-02-12 00:51+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: nb\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Paint"
msgstr "Paint"

View File

@@ -0,0 +1,21 @@
# Dutch translations for PACKAGE package.
# Copyright (C) 2024 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-12 00:51+0000\n"
"PO-Revision-Date: 2024-02-12 00:51+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Paint"
msgstr "Paint"

View File

@@ -0,0 +1,22 @@
# Polish translations for PACKAGE package.
# Copyright (C) 2024 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-12 00:51+0000\n"
"PO-Revision-Date: 2024-02-12 00:51+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: pl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2);\n"
msgid "Paint"
msgstr "Paint"

View File

@@ -0,0 +1,21 @@
# Portuguese translations for PACKAGE package.
# Copyright (C) 2024 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-12 00:51+0000\n"
"PO-Revision-Date: 2024-02-12 00:51+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
msgid "Paint"
msgstr "Paint"

View File

@@ -0,0 +1,21 @@
# Portuguese translations for PACKAGE package.
# Copyright (C) 2024 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-12 00:51+0000\n"
"PO-Revision-Date: 2024-02-12 00:51+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: pt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Paint"
msgstr "Paint"

View File

@@ -0,0 +1,22 @@
# Romanian translations for PACKAGE package.
# Copyright (C) 2024 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-12 00:51+0000\n"
"PO-Revision-Date: 2024-02-12 00:51+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: ro\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
"20)) ? 1 : 2;\n"
msgid "Paint"
msgstr "Paint"

View File

@@ -0,0 +1,22 @@
# Russian translations for PACKAGE package.
# Copyright (C) 2024 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-12 00:51+0000\n"
"PO-Revision-Date: 2024-02-12 00:51+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
msgid "Paint"
msgstr "Paint"

View File

@@ -0,0 +1,21 @@
# Slovak translations for PACKAGE package.
# Copyright (C) 2024 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-12 00:51+0000\n"
"PO-Revision-Date: 2024-02-12 00:51+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: sk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
msgid "Paint"
msgstr "Skicár"

View File

@@ -0,0 +1,22 @@
# Slovenian translations for PACKAGE package.
# Copyright (C) 2024 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-12 00:51+0000\n"
"PO-Revision-Date: 2024-02-12 00:51+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: sl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || "
"n%100==4 ? 2 : 3);\n"
msgid "Paint"
msgstr "Slikar"

View File

@@ -0,0 +1,21 @@
# Swedish translations for PACKAGE package.
# Copyright (C) 2024 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-12 00:51+0000\n"
"PO-Revision-Date: 2024-02-12 00:51+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: sv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Paint"
msgstr "Paint"

View File

@@ -0,0 +1,20 @@
# Thai translations for PACKAGE package.
# Copyright (C) 2024 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-12 00:51+0000\n"
"PO-Revision-Date: 2024-02-12 00:51+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: th\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "Paint"
msgstr "ระบายสี"

View File

@@ -0,0 +1,21 @@
# Turkish translations for PACKAGE package.
# Copyright (C) 2024 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-12 00:51+0000\n"
"PO-Revision-Date: 2024-02-12 00:51+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Paint"
msgstr "Paint"

View File

@@ -0,0 +1,20 @@
# Chinese translations for PACKAGE package.
# Copyright (C) 2024 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-12 00:51+0000\n"
"PO-Revision-Date: 2024-02-12 00:51+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "Paint"
msgstr "画图"

View File

@@ -0,0 +1,20 @@
# Chinese translations for PACKAGE package.
# Copyright (C) 2024 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-12 00:51+0000\n"
"PO-Revision-Date: 2024-02-12 00:51+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: zh_TW\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "Paint"
msgstr "小畫家"

View File

@@ -0,0 +1,71 @@
#include <glib.h>
#include <gtk/gtk.h>
#include <wintc-comgtk.h>
#include "application.h"
#include "window.h"
//
// GTK OOP CLASS/INSTANCE DEFINITIONS
//
struct _WinTCPaintApplicationClass
{
GtkApplicationClass __parent__;
};
struct _WinTCPaintApplication
{
GtkApplication __parent__;
};
//
// FORWARD DECLARATIONS
//
static void wintc_paint_application_activate(
GApplication* application
);
//
// GTK TYPE DEFINITIONS & CTORS
//
G_DEFINE_TYPE(WinTCPaintApplication, wintc_paint_application, GTK_TYPE_APPLICATION)
static void wintc_paint_application_class_init(
WinTCPaintApplicationClass* klass
)
{
GApplicationClass* application_class = G_APPLICATION_CLASS(klass);
application_class->activate = wintc_paint_application_activate;
}
static void wintc_paint_application_init(
WINTC_UNUSED(WinTCPaintApplication* self)
) { }
//
// CLASS VIRTUAL METHODS
//
static void wintc_paint_application_activate(
GApplication* application
)
{
GtkWidget* new_window =
wintc_paint_window_new(WINTC_PAINT_APPLICATION(application));
gtk_widget_show_all(new_window);
}
//
// PUBLIC FUNCTIONS
//
WinTCPaintApplication* wintc_paint_application_new(void)
{
return WINTC_PAINT_APPLICATION(
g_object_new(
wintc_paint_application_get_type(),
"application-id", "uk.co.oddmatics.wintc.mspaint",
NULL
)
);
}

View File

@@ -0,0 +1,27 @@
#ifndef __APPLICATION_H__
#define __APPLICATION_H__
#include <glib.h>
#include <gtk/gtk.h>
//
// GTK OOP BOILERPLATE
//
typedef struct _WinTCPaintApplicationClass WinTCPaintApplicationClass;
typedef struct _WinTCPaintApplication WinTCPaintApplication;
#define TYPE_WINTC_PAINT_APPLICATION (wintc_paint_application_get_type())
#define WINTC_PAINT_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), TYPE_WINTC_PAINT_APPLICATION, WinTCPaintApplication))
#define WINTC_PAINT_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), TYPE_WINTC_PAINT_APPLICATION, WinTCPaintApplicationClass))
#define IS_WINTC_PAINT_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), TYPE_WINTC_PAINT_APPLICATION))
#define IS_WINTC_PAINT_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), TYPE_WINTC_PAINT_APPLICATION))
#define WINTC_PAINT_APPLICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), TYPE_WINTC_PAINT_APPLICATION, WinTCPaintApplicationClass))
GType wintc_paint_application_get_type(void) G_GNUC_CONST;
//
// PUBLIC FUNCTIONS
//
WinTCPaintApplication* wintc_paint_application_new(void);
#endif

View File

@@ -0,0 +1,32 @@
#include <glib.h>
#include <glib/gi18n.h>
#include <locale.h>
#include <wintc-shllang.h>
#include "application.h"
#include "meta.h"
int main(
int argc,
char* argv[]
)
{
// Set up locales
//
setlocale(LC_ALL, "");
bindtextdomain(PKG_NAME, WINTC_LOCALE_DIR);
textdomain(PKG_NAME);
// Launch application
//
WinTCPaintApplication* app = wintc_paint_application_new();
int status;
g_set_application_name("Paint");
status = g_application_run(G_APPLICATION(app), argc, argv);
g_object_unref(app);
return status;
}

View File

@@ -0,0 +1,954 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.40.0 -->
<interface>
<requires lib="gtk+" version="3.24"/>
<object class="GtkImage" id="image-ink-dropper">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="resource">/uk/oddmatics/wintc/mspaint/tool-ink-dropper.png</property>
</object>
<object class="GtkImage" id="image-tool-brush">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="resource">/uk/oddmatics/wintc/mspaint/tool-brush.png</property>
</object>
<object class="GtkImage" id="image-tool-ellipse">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="resource">/uk/oddmatics/wintc/mspaint/tool-ellipse.png</property>
</object>
<object class="GtkImage" id="image-tool-eraser">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="resource">/uk/oddmatics/wintc/mspaint/tool-eraser.png</property>
</object>
<object class="GtkImage" id="image-tool-fill">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="resource">/uk/oddmatics/wintc/mspaint/tool-fill.png</property>
</object>
<object class="GtkImage" id="image-tool-freeform">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="resource">/uk/oddmatics/wintc/mspaint/tool-freeform.png</property>
</object>
<object class="GtkImage" id="image-tool-freeform-select">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="resource">/uk/oddmatics/wintc/mspaint/tool-freeform-select.png</property>
</object>
<object class="GtkImage" id="image-tool-line-bezier">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="resource">/uk/oddmatics/wintc/mspaint/tool-line-bezier.png</property>
</object>
<object class="GtkImage" id="image-tool-line-simple">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="resource">/uk/oddmatics/wintc/mspaint/tool-line-simple.png</property>
</object>
<object class="GtkImage" id="image-tool-pencil">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="resource">/uk/oddmatics/wintc/mspaint/tool-pencil.png</property>
</object>
<object class="GtkImage" id="image-tool-rectangle">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="resource">/uk/oddmatics/wintc/mspaint/tool-rectangle.png</property>
</object>
<object class="GtkImage" id="image-tool-rectangle-rounded">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="resource">/uk/oddmatics/wintc/mspaint/tool-rectangle-rounded.png</property>
</object>
<object class="GtkImage" id="image-tool-rectangle-select">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="resource">/uk/oddmatics/wintc/mspaint/tool-rectangle-select.png</property>
</object>
<object class="GtkImage" id="image-tool-spray-can">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="resource">/uk/oddmatics/wintc/mspaint/tool-spray-can.png</property>
</object>
<object class="GtkImage" id="image-tool-text">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="resource">/uk/oddmatics/wintc/mspaint/tool-text.png</property>
</object>
<object class="GtkImage" id="image-tool-zoom">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="resource">/uk/oddmatics/wintc/mspaint/tool-zoom.png</property>
</object>
<object class="GtkBox" id="main-box">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkMenuBar">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">%CTL_FILEMENU%</property>
<child type="submenu">
<object class="GtkMenu">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">%CTL_NEW%</property>
<property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">%PUNC_MOREINPUT%%CTL_OPEN%</property>
<property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">%CTL_SAVE%</property>
<property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">%PUNC_MOREINPUT%%CTL_SAVEAS%</property>
<property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">From Scanner or Camera...</property>
<property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">%CTL_PRINTPREVIEW%</property>
<property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">%PUNC_MOREINPUT%%CTL_PAGESETUP%</property>
<property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">%PUNC_MOREINPUT%%CTL_PRINT%</property>
<property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">Send...</property>
<property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">Set As Background (Tiled)</property>
<property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">Set As Background (Centered)</property>
<property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">RECENT FILES HERE</property>
<property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">%CTL_EXIT%</property>
<property name="use-underline">True</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">%CTL_EDITMENU%</property>
<child type="submenu">
<object class="GtkMenu">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">%CTL_UNDO%</property>
<property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">Repeat</property>
<property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">%CTL_CUT%</property>
<property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">%CTL_COPY%</property>
<property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">%CTL_PASTE%</property>
<property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">Clear Selection</property>
<property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">%CTL_SELECTALL%</property>
<property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">Copy To...</property>
<property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">Paste From...</property>
<property name="use-underline">True</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">%CTL_VIEWMENU%</property>
<child type="submenu">
<object class="GtkMenu">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkCheckMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Tool Box</property>
<property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkCheckMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Color Box</property>
<property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkCheckMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Status Bar</property>
<property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkCheckMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Text Toolbar</property>
<property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">%CTL_ZOOM%</property>
<property name="use-underline">True</property>
<child type="submenu">
<object class="GtkMenu">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">Normal Size</property>
<property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">Large Size</property>
<property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">Custom...</property>
<property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">Show Grid</property>
<property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">Show Thumbnail</property>
<property name="use-underline">True</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">View Bitmap</property>
<property name="use-underline">True</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Image</property>
<property name="use-underline">True</property>
<child type="submenu">
<object class="GtkMenu">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">Flip/Rotate...</property>
<property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">Stretch/Skew...</property>
<property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">Invert Colors</property>
<property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">Attributes...</property>
<property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">Clear Image</property>
<property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">Draw Opaque</property>
<property name="use-underline">True</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Colors</property>
<property name="use-underline">True</property>
<child type="submenu">
<object class="GtkMenu">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">Edit Colors...</property>
<property name="use-underline">True</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">%CTL_HELPMENU%</property>
<child type="submenu">
<object class="GtkMenu">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">%CTL_HELPTOPICS%</property>
<property name="use-underline">True</property>
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
</child>
<child>
<object class="GtkMenuItem">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="action-name">win.notimpl</property>
<property name="label" translatable="yes">About Paint</property>
<property name="use-underline">True</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<!-- n-columns=2 n-rows=8 -->
<object class="GtkGrid">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkToggleButton" id="button-tool-freeform-select">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="focus-on-click">False</property>
<property name="receives-default">True</property>
<property name="image">image-tool-freeform-select</property>
<property name="always-show-image">True</property>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="button-tool-rectangle-select">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="focus-on-click">False</property>
<property name="receives-default">True</property>
<property name="image">image-tool-rectangle-select</property>
<property name="always-show-image">True</property>
</object>
<packing>
<property name="left-attach">1</property>
<property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="button-tool-eraser">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="focus-on-click">False</property>
<property name="receives-default">True</property>
<property name="image">image-tool-eraser</property>
<property name="always-show-image">True</property>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="button-tool-fill">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="focus-on-click">False</property>
<property name="receives-default">True</property>
<property name="image">image-tool-fill</property>
<property name="always-show-image">True</property>
</object>
<packing>
<property name="left-attach">1</property>
<property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="button-tool-ink-dropper">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="focus-on-click">False</property>
<property name="receives-default">True</property>
<property name="image">image-ink-dropper</property>
<property name="always-show-image">True</property>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="button-tool-zoom">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="focus-on-click">False</property>
<property name="receives-default">True</property>
<property name="image">image-tool-zoom</property>
<property name="always-show-image">True</property>
</object>
<packing>
<property name="left-attach">1</property>
<property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="button-tool-pencil">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="focus-on-click">False</property>
<property name="receives-default">True</property>
<property name="image">image-tool-pencil</property>
<property name="always-show-image">True</property>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="button-tool-brush">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="focus-on-click">False</property>
<property name="receives-default">True</property>
<property name="image">image-tool-brush</property>
<property name="always-show-image">True</property>
</object>
<packing>
<property name="left-attach">1</property>
<property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="button-tool-spray-can">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="focus-on-click">False</property>
<property name="receives-default">True</property>
<property name="image">image-tool-spray-can</property>
<property name="always-show-image">True</property>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">4</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="button-tool-text">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="focus-on-click">False</property>
<property name="receives-default">True</property>
<property name="image">image-tool-text</property>
<property name="always-show-image">True</property>
</object>
<packing>
<property name="left-attach">1</property>
<property name="top-attach">4</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="button-tool-line-simple">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="focus-on-click">False</property>
<property name="receives-default">True</property>
<property name="image">image-tool-line-simple</property>
<property name="always-show-image">True</property>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">5</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="button-tool-line-bezier">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="focus-on-click">False</property>
<property name="receives-default">True</property>
<property name="image">image-tool-line-bezier</property>
<property name="always-show-image">True</property>
</object>
<packing>
<property name="left-attach">1</property>
<property name="top-attach">5</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="button-tool-rectangle">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="focus-on-click">False</property>
<property name="receives-default">True</property>
<property name="image">image-tool-rectangle</property>
<property name="always-show-image">True</property>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">6</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="button-tool-freeform">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="focus-on-click">False</property>
<property name="receives-default">True</property>
<property name="image">image-tool-freeform</property>
<property name="always-show-image">True</property>
</object>
<packing>
<property name="left-attach">1</property>
<property name="top-attach">6</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="button-tool-ellipse">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="focus-on-click">False</property>
<property name="receives-default">True</property>
<property name="image">image-tool-ellipse</property>
<property name="always-show-image">True</property>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">7</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="button-tool-rectangle-rounded">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="focus-on-click">False</property>
<property name="receives-default">True</property>
<property name="image">image-tool-rectangle-rounded</property>
<property name="always-show-image">True</property>
</object>
<packing>
<property name="left-attach">1</property>
<property name="top-attach">7</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkDrawingArea">
<property name="width-request">512</property>
<property name="height-request">384</property>
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">start</property>
<property name="valign">start</property>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkColorButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkStatusbar">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">2</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
</object>
</interface>

View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<gresources>
<gresource prefix="/uk/oddmatics/wintc/mspaint">
<file>mspaint.ui</file>
<file>tool-freeform-select.png</file>
<file>tool-rectangle-select.png</file>
<file>tool-eraser.png</file>
<file>tool-fill.png</file>
<file>tool-ink-dropper.png</file>
<file>tool-zoom.png</file>
<file>tool-pencil.png</file>
<file>tool-brush.png</file>
<file>tool-spray-can.png</file>
<file>tool-text.png</file>
<file>tool-line-simple.png</file>
<file>tool-line-bezier.png</file>
<file>tool-rectangle.png</file>
<file>tool-freeform.png</file>
<file>tool-ellipse.png</file>
<file>tool-rectangle-rounded.png</file>
</gresource>
</gresources>

Binary file not shown.

After

Width:  |  Height:  |  Size: 552 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 537 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 567 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 619 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 557 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 550 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 590 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 512 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 496 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 583 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 522 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 506 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 508 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 597 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 550 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 637 B

View File

@@ -0,0 +1,133 @@
#include <glib.h>
#include <glib/gi18n.h>
#include <gtk/gtk.h>
#include <wintc-comgtk.h>
#include <wintc-shllang.h>
#include "application.h"
#include "window.h"
//
// FORWARD DECLARATIONS
//
static void action_notimpl(
GSimpleAction* action,
GVariant* parameter,
gpointer user_data
);
//
// STATIC DATA
//
static GActionEntry s_window_actions[] = {
{
.name = "notimpl",
.activate = action_notimpl,
.parameter_type = NULL,
.state = NULL,
.change_state = NULL
}
};
//
// GTK OOP CLASS/INSTANCE DEFINITIONS
//
struct _WinTCPaintWindowClass
{
GtkApplicationWindowClass __parent__;
};
struct _WinTCPaintWindow
{
GtkApplicationWindow __parent__;
};
//
// GTK TYPE DEFINITION & CTORS
//
G_DEFINE_TYPE(
WinTCPaintWindow,
wintc_paint_window,
GTK_TYPE_APPLICATION_WINDOW
)
static void wintc_paint_window_class_init(
WINTC_UNUSED(WinTCPaintWindowClass* klass)
) {}
static void wintc_paint_window_init(
WinTCPaintWindow* self
)
{
GtkBuilder* builder;
GtkWidget* main_box;
// Define GActions
//
g_action_map_add_action_entries(
G_ACTION_MAP(self),
s_window_actions,
G_N_ELEMENTS(s_window_actions),
self
);
// FIXME: Should restore window size if possible
//
gtk_window_set_default_size(
GTK_WINDOW(self),
500,
350
);
// Initialize UI
//
builder =
gtk_builder_new_from_resource(
"/uk/oddmatics/wintc/mspaint/mspaint.ui"
);
wintc_preprocess_builder_widget_text(builder);
main_box = GTK_WIDGET(gtk_builder_get_object(builder, "main-box"));
gtk_container_add(GTK_CONTAINER(self), main_box);
}
//
// PUBLIC FUNCTIONS
//
GtkWidget* wintc_paint_window_new(
WinTCPaintApplication* app
)
{
return GTK_WIDGET(
g_object_new(
TYPE_WINTC_PAINT_WINDOW,
"application", GTK_APPLICATION(app),
"title", _("Paint"),
NULL
)
);
}
//
// CALLBACKS
//
static void action_notimpl(
WINTC_UNUSED(GSimpleAction* action),
WINTC_UNUSED(GVariant* parameter),
WINTC_UNUSED(gpointer user_data)
)
{
GError* error = NULL;
g_set_error(
&error,
WINTC_GENERAL_ERROR,
WINTC_GENERAL_ERROR_NOTIMPL,
"%s",
"Action not implemented."
);
wintc_nice_error_and_clear(&error);
}

View File

@@ -0,0 +1,31 @@
#ifndef __WINDOW_H__
#define __WINDOW_H__
#include <glib.h>
#include <gtk/gtk.h>
#include "application.h"
//
// GTK OOP BOILERPLATE
//
typedef struct _WinTCPaintWindowClass WinTCPaintWindowClass;
typedef struct _WinTCPaintWindow WinTCPaintWindow;
#define TYPE_WINTC_PAINT_WINDOW (wintc_paint_window_get_type())
#define WINTC_PAINT_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), TYPE_WINTC_PAINT_WINDOW, WinTCPaintWindow))
#define WINTC_PAINT_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), TYPE_WINTC_PAINT_WINDOW, WinTCPaintWindowClass))
#define IS_WINTC_PAINT_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), TYPE_WINTC_PAINT_WINDOW))
#define IS_WINTC_PAINT_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), TYPE_WINTC_PAINT_WINDOW))
#define WINTC_PAINT_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), TYPE_WINTC_PAINT_WINDOW, WinTCPaintWindowClass))
GType wintc_paint_window_get_type(void) G_GNUC_CONST;
//
// PUBLIC FUNCTIONS
//
GtkWidget* wintc_paint_window_new(
WinTCPaintApplication* app
);
#endif

View File

@@ -15,7 +15,6 @@
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">%CTL_FILEMENU%</property>
<property name="use-underline">True</property>
<child type="submenu">
<object class="GtkMenu">
<property name="visible">True</property>
@@ -106,7 +105,6 @@
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">%CTL_EDITMENU%</property>
<property name="use-underline">True</property>
<child type="submenu">
<object class="GtkMenu">
<property name="visible">True</property>
@@ -237,7 +235,6 @@
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">%CTL_FORMATMENU%</property>
<property name="use-underline">True</property>
<child type="submenu">
<object class="GtkMenu">
<property name="visible">True</property>
@@ -269,7 +266,6 @@
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">%CTL_VIEWMENU%</property>
<property name="use-underline">True</property>
<child type="submenu">
<object class="GtkMenu">
<property name="visible">True</property>
@@ -292,7 +288,6 @@
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">%CTL_HELPMENU%</property>
<property name="use-underline">True</property>
<child type="submenu">
<object class="GtkMenu">
<property name="visible">True</property>

View File

@@ -266,6 +266,8 @@ static void wintc_notepad_window_finalize(
WinTCNotepadWindow* wnd = WINTC_NOTEPAD_WINDOW(object);
g_free(wnd->file_uri);
(G_OBJECT_CLASS(wintc_notepad_window_parent_class))->finalize(object);
}
static void wintc_notepad_window_get_property(