בפוסט הקודם ציינתי שהחלטתי להיות מועיל יותר ולנסות לעזור לשיפור שולחן העבודה הגראפי בלינוקס. הדבר הראשון שרציתי להתחיל לעשות הוא לאפשר ליצור חלונות משופרים יותר ובעלי צורות בלי צורך בתכנות => דרך עיצוב הגראפי בglade.

אף על פי שהתמיכה בכך הסתכמה בשבע שורות בלבד! לקח לי כמה ימים לעשות זאת עקב התמיכה הלא ממש יעילה שהייתה לי בפורום של GTK.

מיקודם אומנם הודעתי שסימתי להכין, אולם השתמשתי בWidget מסוג gtk.Image שאינו מאפשר לשים ווידגטים עליו, ולכן פניתי שוב לפורמים.

רוב התשובות גיליתי לבד כי מלבד פעם אחת הציגו לי איך אני עושה משהו יעיל יותר, לא קיבלתי שום דבר מועיל. שאלתי שאלות פשוטות, איך להפוך משהו אחד למשהו אחר, ואז כמובן במקום לענות שפוט על השאלה, התחילו להציג לי דברים אחרים ולנסות להסביר כל הזמן למה אני צריך לעשות את הפעולה הזאת.

מי שרוצה להסתכל בהשלשלות האירועים הקצרה (רק שיתפרשה על מספר ימים) יוכל לראות בהודעה ראשונה ושניה

שתי שאלות פשוטות שבתשובה ישירה אליהם היו חוסכים מלא זמן לשני הצדדים.

אם זה היחס של קהילת הGTK, לא פלא שככה התוכנות שלה נראות.

ראיתי את הפוסט של Elcuco על חדשות מהחזית של Qt 4.5 ו-KDE 4.2 שמראים עד כמה מושקע QT וKDE, אני מניח שזה בעיקר בזכות העובדה שהוא מנוהל ע"י חברה מסחרית. אני לא יודע איך התמיכה שם, אבל אני מניח שגרוע מיזה קשה למצוא.

החלטתי לעשות הפסקה מלשפר ממשקים למפתחים, ולנסות לתקן באגן מעצבן בkwordquiz, אי אפשר לענות על שאלות אמריקאיות מהמספרים במקלדת. לצערי לא הצלחתי לקמפל למרות שהורדתי את קוד המקור מהמאגרים של אובונטו וגם התקנתי את התלויות הנדרשות בעזרת apt-get build-dep.

Qt 4 designer נראה עשיר הרבה יותר בווידגטים, ואין מה להשוות אפילו בין QDevelop לדבר העלוב שנקרא Anjuta. אפילו בתוכנת IDE שמיועדת למתכנתים מושקע בה אפקטים יפים.

אני נוטש את הרעיון לשפר את libglade ואז לשכנע את המפתחים שינסו לקבל את השינוי, GTK וGNOME והקהילה שלו צריכים לעבור שדרוג רציני, בדומה לKDE4, חבל להשקיע בהם עכשיו.

תוספת:

שכחתי להראות אאת קוד החלון, כל מה שצריך זה את הדבר הבא: (בהזדמנות אשים קוד מלא איפשהו)

def expose(win, event):
global supports_alpha, img

pixbuf = gdk.pixbuf_new_from_file('1.svg')
pix, mask = pixbuf.render_pixmap_and_mask()
cr = win.window.cairo_create()
cr.set_source_pixmap(pix,0,0)
cr.paint()
win.shape_combine_mask(mask, 0, 0)
win.resize(pixbuf.get_width(), pixbuf.get_height())