جیتیکی+ در اصل برای نرمافزارگیمپ نوشته شده بود. گیمپ یکنرمافزار آزاد برای ویرایش تصاویر بیتمپی است. جیتیکی در سال ۱۹۹۷ توسط اسپنسر کیمبال و پیتر ماتیس از اعضای XCF دردانشگاه کالیفرنیا، برکلی نوشته شد.
این کتابخانه تحت پروانهگنو الجیپیال منتشر میشود که هم بهنرمافزارهای آزاد و هم بهنرمافزارهای انحصاری اجازه میدهد از این کتابخانه استفاده کنند. همچنین نام جیتیکی+ از نام پیشین خود یعنی «جیتیکی» میآید. علامت + نشان میدهد که این کتابخانه نسخه بهبودیافته و بهینه شده جیتیکی است.
جیتیکی+ ازکتابخانه اکس برای ترسیم ویجتها استفاده میکند. استفاده ازکتابخانه اکس انعطافپذیری به همراه دارد و به جیتیکی+ اجازه میدهد بر روی پلتفرمهایی که در آنهاسامانه پنجره اکس وجود ندارند هم اجرا شود. در حالی که جیتیکی+ در درجه اول سامانه پنجره اکس را مورد هدف قرار داده، اما میتوان از آن بر روی پلتفرمهای دیگری مانندمایکروسافت ویندوز واواس ده هم استفاده کرد.
یکی از قدرتمندترین ویژگی های GTK، قالب بندی است. ظاهر تمامی ویجت ها و عناصر گرافیکی در GTK را میتوان تقریبا با تمام جزئیات سفارشی کرد. از رنگ متن گرفته تا شکل گوشه های یک دکمه. معمولا ویجت ها از ظاهر تم سیستمی که نرم افزار روی آن اجرا میشود، استفاده میکنند. برای مثال تصویر راست نرم افزاری بر روی سخت افزار Raspberry Pi و محیط دسکتاپ آن و تم سفارشی PIX و تصویر چپ روی اوبونتو لینوکس، دسکتاپ گنوم و تم Yaru میباشد.
تفاوت میان پنجره و ویجت های آن در Raspberry Pi و Ubuntu Linux که نشان دهنده وابستگی GTK به تم سیستم عامل است. تصویر سمت راست در اوبونتو و تصویر سمت چپ در Raspberry Pi
از ویژگی های دیگر این کتابخانه محبوب، امکان استفاده از CSS برای استایل دهی به ویجت ها و پنجره نرم افزار است. استفاده از این ویژگی باعث تغییر ظاهر ویجت ها میشود ولی باز هم قالب کلی ویجت ها تحت امر theme سیستم عامل است. در زیر میتوانید یک نمونه ساده از استایل دهی و تغییر رنگ پنجره نرم افزار و ویجت دکمه را در CSS مشاهده کنید :
از مهمترین نرم افزار هایی که بهبرنامه نویس در راستای ساخت رابط کاربری اش کمک شایانی میکند، میتوان به نرم افزار هایGlade وCambalache اشاره کرد. در تصویر زیر میتوانید ظاهر نرم افزار Glade که نرم افزار رسمی GTK میباشد را مشاهده کنید :
ظاهر نرم افزار Glade در GTK
خود این نرم افزار با GTK ساخته شده است. علاوه بر آن، نرم افزار های متعدد دیگری برای آشنایی تازه واردین GTK با این پلتفرم ساخت شده است که یکی از آنها،مجموعه نرم افزار های Gtk Demo میباشد. این مجموعه نرم افزار که با GTK نوشته شده است، درون خود لیستی بلند از مثال های متعدد GTK با زبان سی را شامل میشود و قابل نصب روی تمام توزیع های لینوکسی میباشد.
نسخه چهارم کتابخانه GTK تفاوت فاحشی با نسخه های قبلی و حتی قبل تر از آن نداشته است بلکه مجموعه دستورات و توابع گرافیکی نرم افزار از تابع main به تابع ثانویه دیگری موسوم بهactivate منتقل شده است ( البته نام تابع کاملا اختیاری است ) و توسط g_signal_connect آن تابع اجرا میشود.
در خط اول، ما مجموعه توابع و کتابخانه های gtk را به نرم افزار شامل کردیم. بدنه و اصل دستورات نرم افزارمان درون تابعactivate قرار دارد و و تابع main تنها وظیفه اجرای این تابع را به روش درست دارد. در خط 16، ما یکنوع داده انتزاعی با نام app و نوع GtkApplication ایجاد کردیم. این داده انتزاعی کلاسی است که بسیاری از جنبه های مهم یک برنامه GTK را به شیوه ای راحت مدیریت می کند. هر GtkApplication دارای یک شناسه نام است که مدیریت نرم افزار ها را برای سیستم عامل راحت تر میکند مانند همان شناسه ای که برای اپلیکیشن های اندروید استفاده میشود. این شناسه ها برای نرم افزار DBus و آیکون نرم افزار در دسکتاپ ( .desktop ) و ... مورد استفاده قرار میگیرد. در آخر نرم افزار توسط g_application_run اجرا و کد خطا برگردانده و در متغیر status ذخیره میشود.
در تابع activate، خط ششم باعث ایجاد نوع داده انتزاعی پنجره میشود و در خط بعد، متغیر مقداردهی میشود. خطوط هشتم و نهم برای تغییر تایتل پنجره، اندازه پیشفرض پنجره هنگام ظاهر شدن آن و قبل از تغییر آن توسط کاربر میشود و در نهایت، خط دهم باعث نمایش پنجره و پایدار شدن نرم افزار و عدم پایان نرم افزار میشود ( شبیه یک حلقه بی پایان ) تا کاربر برای خروجی، دکمه X را فشار دهد یا نرم افزار خود اقدام به خروج نماید.
برای کامپایل کردن این کد با استفاده از کامپایلر GCC به این شکل عمل کنید و بجای example-0.c، نام فایل سورس تان و بجای example-0 نام فایل اجرایی خروجی تان را جاگذاری کنید :