1
0
Fork 0
firefox/gfx/thebes/AndroidSystemFontIterator.h
Daniel Baumann 5e9a113729
Adding upstream version 140.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-25 09:37:52 +02:00

65 lines
1.5 KiB
C++

/* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 2 -*-
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef AndroidSystemFontIterator_h__
#define AndroidSystemFontIterator_h__
#include "mozilla/Maybe.h"
namespace mozilla {
typedef void* (*_ASystemFontIterator_open)();
typedef void* (*_ASystemFontIterator_next)(void*);
typedef void (*_ASystemFontIterator_close)(void*);
typedef const char* (*_AFont_getFontFilePath)(const void*);
typedef void (*_AFont_close)(void*);
class AndroidFont final {
public:
explicit AndroidFont(void* aFont) : mFont(aFont) {};
AndroidFont() = delete;
AndroidFont(AndroidFont&) = delete;
AndroidFont(AndroidFont&& aSrc) {
mFont = aSrc.mFont;
aSrc.mFont = nullptr;
}
~AndroidFont();
const char* GetFontFilePath();
private:
void* mFont;
static _AFont_getFontFilePath sFont_getFontFilePath;
static _AFont_close sFont_close;
friend class AndroidSystemFontIterator;
};
class AndroidSystemFontIterator final {
public:
AndroidSystemFontIterator() = default;
~AndroidSystemFontIterator();
bool Init();
Maybe<AndroidFont> Next();
private:
void* mIterator = nullptr;
static _ASystemFontIterator_open sSystemFontIterator_open;
static _ASystemFontIterator_next sSystemFontIterator_next;
static _ASystemFontIterator_close sSystemFontIterator_close;
};
} // namespace mozilla
#endif