1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00

clipboard: ensure public method access after #9062. Fixes #9089 (#9107)

This commit is contained in:
Larpon 2021-03-04 09:49:40 +01:00 committed by GitHub
parent 2bfa6dfe2f
commit d08f994e19
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 24 additions and 23 deletions

View File

@ -4,6 +4,7 @@ module clipboard
#include <Cocoa/Cocoa.h>
#flag -framework Cocoa
#include "@VROOT/vlib/clipboard/clipboard_darwin.m"
pub struct Clipboard {
pb voidptr
last_cb_serial i64
@ -24,22 +25,22 @@ fn new_clipboard() &Clipboard {
return cb
}
fn (cb &Clipboard) check_availability() bool {
pub fn (cb &Clipboard) check_availability() bool {
return cb.pb != C.NULL
}
fn (mut cb Clipboard) clear() {
pub fn (mut cb Clipboard) clear() {
cb.foo = 0
cb.set_text('')
//#[cb->pb clearContents];
}
fn (mut cb Clipboard) free() {
pub fn (mut cb Clipboard) free() {
cb.foo = 0
// nothing to free
}
fn (cb &Clipboard) has_ownership() bool {
pub fn (cb &Clipboard) has_ownership() bool {
if cb.last_cb_serial == 0 {
return false
}
@ -49,11 +50,11 @@ fn (cb &Clipboard) has_ownership() bool {
fn C.OSAtomicCompareAndSwapLong()
fn (mut cb Clipboard) set_text(text string) bool {
pub fn (mut cb Clipboard) set_text(text string) bool {
return C.darwin_set_pasteboard_text(cb.pb, text)
}
fn (mut cb Clipboard) get_text() string {
pub fn (mut cb Clipboard) get_text() string {
cb.foo = 0
if isnil(cb.pb) {
return ''

View File

@ -104,15 +104,15 @@ fn new_clipboard() &Clipboard {
return cb
}
fn (cb &Clipboard) check_availability() bool {
pub fn (cb &Clipboard) check_availability() bool {
return cb.hwnd != C.HWND(C.NULL)
}
fn (cb &Clipboard) has_ownership() bool {
pub fn (cb &Clipboard) has_ownership() bool {
return C.GetClipboardOwner() == cb.hwnd
}
fn (mut cb Clipboard) clear() {
pub fn (mut cb Clipboard) clear() {
if !cb.get_clipboard_lock() {
return
}
@ -121,7 +121,7 @@ fn (mut cb Clipboard) clear() {
cb.foo = 0
}
fn (mut cb Clipboard) free() {
pub fn (mut cb Clipboard) free() {
C.DestroyWindow(cb.hwnd)
cb.foo = 0
}
@ -143,7 +143,7 @@ fn to_wide(text string) C.HGLOBAL {
return buf
}
fn (mut cb Clipboard) set_text(text string) bool {
pub fn (mut cb Clipboard) set_text(text string) bool {
cb.foo = 0
buf := to_wide(text)
if !cb.get_clipboard_lock() {
@ -164,7 +164,7 @@ fn (mut cb Clipboard) set_text(text string) bool {
return true
}
fn (mut cb Clipboard) get_text() string {
pub fn (mut cb Clipboard) get_text() string {
cb.foo = 0
if !cb.get_clipboard_lock() {
return ''

View File

@ -19,30 +19,30 @@ pub fn new_primary() &Clipboard {
return &Clipboard{}
}
fn (mut cb Clipboard) set_text(text string) bool {
pub fn (mut cb Clipboard) set_text(text string) bool {
cb.text = text
cb.is_owner = true
cb.got_text = true
return true
}
fn (mut cb Clipboard) get_text() string {
pub fn (mut cb Clipboard) get_text() string {
return cb.text
}
fn (mut cb Clipboard) clear() {
pub fn (mut cb Clipboard) clear() {
cb.text = ''
cb.is_owner = false
}
fn (mut cb Clipboard) free() {
pub fn (mut cb Clipboard) free() {
}
fn (cb &Clipboard) has_ownership() bool {
pub fn (cb &Clipboard) has_ownership() bool {
return cb.is_owner
}
fn (cb &Clipboard) check_availability() bool {
pub fn (cb &Clipboard) check_availability() bool {
// This is a dummy clipboard implementation,
// which can be always used, although it does not do much...
return true

View File

@ -198,18 +198,18 @@ fn new_x11_clipboard(selection AtomType) &Clipboard {
return cb
}
fn (cb &Clipboard) check_availability() bool {
pub fn (cb &Clipboard) check_availability() bool {
return cb.display != C.NULL
}
fn (mut cb Clipboard) free() {
pub fn (mut cb Clipboard) free() {
C.XDestroyWindow(cb.display, cb.window)
cb.window = C.Window(C.None)
// FIX ME: program hangs when closing display
// XCloseDisplay(cb.display)
}
fn (mut cb Clipboard) clear() {
pub fn (mut cb Clipboard) clear() {
cb.mutex.@lock()
C.XSetSelectionOwner(cb.display, cb.selection, C.Window(C.None), C.CurrentTime)
C.XFlush(cb.display)
@ -218,7 +218,7 @@ fn (mut cb Clipboard) clear() {
cb.mutex.unlock()
}
fn (cb &Clipboard) has_ownership() bool {
pub fn (cb &Clipboard) has_ownership() bool {
return cb.is_owner
}
@ -243,7 +243,7 @@ pub fn (mut cb Clipboard) set_text(text string) bool {
return cb.is_owner
}
fn (mut cb Clipboard) get_text() string {
pub fn (mut cb Clipboard) get_text() string {
if cb.window == C.Window(C.None) {
return ''
}