17 Februari 2016

Project Example, Membuat Wallpaper / Desktop Window

Project ini merupakan salah satu project yang telah penulis upload atau dibagikan di penyimpanan Online, berikut ini informasi singkat dari project.
Pembuat: Zainudin Ahmad
Nama Project: X11 Wallpaper
Nama File Project: GPI-X11Wallpaper
Tahun Pembuatan: 2015
Gambas Versi: 3.8
Jumlah Baris Kode: 24 baris
Lisensi: MIT License
Komponen : gb.image, gb.gui, gb.form, gb.desktop.x11

Project ini dibuat untuk mempelajari bagai mana cara membuat aplikasi Wallpaper atau yang lebih dikenal dengan Desktop window dengan menggunakan X11 API, dan dalam project ini penulis hanya menggunakan 2 buah gambar yang berada di dalam project, dan lebih detil lagi project ini juga mempelajari :
  • Mengubah tipe window menjadi bertipe Desktop
  • Menampilkan gambar yang berada didalam direktori project

Di bawah ini merupakan kode sumber dari project
' Gambas class file

'--------------------------------------------
'author : Zainudin Ahmad
'Website : gambaspi.blogspot.co.id
'License : MIT License
'-------
' Copyright (c) 2015 Zainudin Ahmad
'
' Permission is hereby granted, free of charge, to any person obtaining a copy
' of this software and associated documentation files (the "Software"), to deal
' in the Software without restriction, including without limitation the rights
' to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
' copies of the Software, and to permit persons to whom the Software is
' furnished to do so, subject to the following conditions:
'
' The above copyright notice and this permission notice shall be included in
' all copies or substantial portions of the Software.
'
' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
' IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
' FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
' AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
' LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
' OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
' THE SOFTWARE.
'--------------------------------------------



Private $colAtom As New Collection
Private bPic As Boolean

Public Sub _new()

   'trik: untuk versi 3.8 nilai -1 untuk memposisikan window pada posisi 0 ;)
   Me.Move(-1, -1, Screen.Width, Screen.Height)

End

Public Sub Form_Open()

   'Ubah tipe window menjadi bertipe Desktop
   X11.SetWindowProperty(Me.Id, getAtom("_NET_WM_WINDOW_TYPE"), getAtom("ATOM"), getAtom("_NET_WM_WINDOW_TYPE_DESKTOP"))
   Me.Picture = Picture["./pic-wall1.png"]

End

Private Function getAtom(sAtom As String) As Integer

   '----------- Note ------------------------------
   'This function borrow from Gambas source code
   'This have different license
   '-----------------------------------------------


   Dim iAtom As Integer

   If $colAtom.Exist(sAtom) Then Return $colAtom[sAtom]
   iAtom = X11.InternAtom(sAtom, True)
   $colAtom[sAtom] = iAtom
   Return iAtom

End

Public Sub Form_MouseDown()

   'menampilkan gambar yang berada didalam direktori project
   If bPic Then
     Me.Picture = Picture["pic-wall1.png"]
   Else
     Me.Picture = Picture["pic-wall2.png"]
   Endif

   bPic = Not bPic

End


Form, Control atau Container yang digunakan sewaktu mendisain(drag & drop dari Toolbox) menggunakan Form Disainer dalam project ini adalah
  • 1 Form bernama : FMain

Untuk aturan penamaan pada setiap element di dalam form dan juga penamaan variabel, konstanta, class dan lain-lain anda bisa melihat dihalaman ini : Naming Convention. Semoga saja project ini bisa bermanfaat buat anda, untuk mendapatkan project ini anda dapat mendownload nya dengan mengklik link dibawah ini.

Download Project

Ada kemungkinan project ini bisa berjalan di versi Gambas yang lebih rendah atau lebih tinggi dari versi Gambas 3.8 selama masih menggunakan versi Major yang sama.

Alhamdulillah, Selamat Mencoba :)

Tidak ada komentar:

Posting Komentar