grafX2/src/haiku.cpp
2018-12-07 13:25:34 +01:00

61 lines
1.5 KiB
C++

/* vim:expandtab:ts=2 sw=2:
*/
/* Grafx2 - The Ultimate 256-color bitmap paint program
Copyright 2007 Adrien Destugues
Grafx2 is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; version 2
of the License.
Grafx2 is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Grafx2; if not, see <http://www.gnu.org/licenses/>
*/
/** @file haiku.cpp
* Definition of Haiku specific functions.
*
* Haiku API is C++, so this is C++ code exporting as C symbols
* to be called by GrafX2 C code.
*/
#ifdef __HAIKU__
#include <Clipboard.h>
#include <Entry.h>
#include <Volume.h>
#include <string.h>
#include "haiku.h"
qword haiku_get_free_space(char* path)
{
BEntry bpath(path);
entry_ref ref;
bpath.GetRef(&ref);
BVolume disk(ref.device);
return (qword) disk.Capacity();
}
/**
* @return NULL or a string that should be free()'d by the caller
*/
char* haiku_get_clipboard()
{
if (be_clipboard->Lock())
{
const char* value;
ssize_t len;
be_clipboard->Data()->FindData("text/plain", B_MIME_TYPE, (const void **)&value, &len);
be_clipboard->Unlock();
return strdup(value);
}
return NULL;
}
#endif